real world application of development
TRANSCRIPT
My Background
• AS in Computer Engineering, BS in Computer Information Systems, MS in Information Systems
• CCNA and A+ Certifications
• 8 years as a Sysadmin/Network Admin at small ISP
• 5 years as a Programmer I/II at Daytona State College
• 3 years as a Sr. Software Developer with SCPS
• Fluent in 22 programming languages
SCPS Development Projects
• Campus Scheduling• Data Scrubber• Dual Enrollment• Check-in/Check-out• Summer School• WakeOnLAN• Student Import• Summer School• Grants (Testing)• Internship (TBD)
Tools We Use
• Visual Studio Professional/Ultimate
• SQL Server
• DB Visualizer
• Notepad++/UltraEdit
• Crystal Reports
• FileZilla
• Adobe Suite
Current State of Development
• High demand for those with education and expertise.
• High entry-level salary.
• Opportunities in multitudes of languages.
• Employers ranging from start-ups to Fortune 500 corporations.
• Perks are the highlight for developers right now, more so than salary.
• Plenty of opportunities for contract work, even overseas.
• Movement towards DevOps.
The Three Pillars of Development
• Pillar 1: Degree• Don’t just focus on Computer
Science.
• Pillar 2: Experience• You can never have too much.
• Pillar 3: Certifications• Nice, but not necessary.
Pillar 1: Degree
• Absolute must-have for today’s workforce.
• Shift from Computer Science to Information Systems.
• Focus major on your career goal, minor in a backup career goal.
• Take extra classes in networking and healthcare informatics.
• Supplement your book knowledge with practical experience.
Pillar 2: Experience
• You can never have too much experience.
• Seek out internships whenever possible.
• Practical real-world applications matter more than classwork/labwork.
• Work in a team whenever possible.
• Do research on various software development methodologies and practice them in your development (SCRUM, Agile, Waterfall).
Pillar 3: Certifications
• Database Certifications: Oracle Certified Professional; Microsoft SQL Certifications (MCSE, MCSA, MTA); MongoDB Certified DBA/Developer
• Programming Certifications: Microsoft Certified Solutions Developer (MCSD); Adobe Certified Expert (ACE) for Developers; Google Apps for Business Certified Deployment Specialist
• Alternative Certifications: Cisco Certified Design Associate; Certs for your language
Important Skills to Learn
• Databases.• Learn as soon as possible.
• Time/project management.• Learn from open-source software (OSS).
• Organizational skills.• Messy desks are fine, messy minds aren’t.
• Collaboration/communication.• Work with a team, learn how to talk non-techie.
• Invest in cheap/free tools.• Raspberry Pi, free Microsoft development studios, DreamSpark.
Important Languages to Learn
Language % Use Base Lang.
C 16.5 C
Java 15.3 C
C++ 6.6 C
Objective-C 6.0 C
C# 5.7 C
JavaScript 3.5 C
PHP 3.2 C
Python 2.9 C
Visual Basic .NET 2.0 BASIC
Visual Basic 1.7 BASIC
Language % Use Base Lang.
Delphi 1.6 Pascal
Perl 1.4 C
PL/SQL 1.3 Datalog
F# 1.2 C
Transact-SQL 1.1 Datalog
ABAP 1.0 COBOL
MATLAB 1.0 C
R 1.0 C/Fortran
Pascal 1.0 Fortran
Ruby 0.9 C
How to Get Started/Career Path
• Get experience early.
• Get the degree.
• Continuously learn.
• Network with your peers and mentors.
• Set a goal timeline.
Experience
• Start volunteer work ASAP.
• Get an internship or volunteer with community organizations.• SCPS offers internship opportunities.
• Join in on other internship/job fairs.
• Ask outreach organizations if they need computer help.
• Build your resume/portfolio NOW. Add apps/websites/other work as you complete it.
• Community/Work Projects > Personal Projects > School Projects.
Degree
• Unless you are trying to create/join a start-up, you’re unemployable without a bachelor’s degree at a minimum.
• Demand for developers is high, but supply is high.
• Don’t narrow your focus when a general degree will work.
• Remember that “book code” and “real code” are different. Read for understanding of how to apply to a real-life scenario.
Continuously Learn
• Religiously perform “hour of code” every night.
• Get app ideas from your family, and then try and code it.
• Program for games (WoW, Minecraft, Skyrim, Steam Workshop, Unreal engine, Unity engine).
• Invest in cheap hardware for programming against (Raspberry Pi).
• Never turn down constructive criticism.
Network With Peers and Mentors
• Internship!
• Help out on an Open Source project.
• Join Codeplex and Stack Overflow and offer tips, suggestions, solutions, or just lurk for knowledge.
• Find a mentor, either online or physical. The mentor needs to be active in the field, not necessarily a teacher.
Goal Timeline
• Now: Learn databases. Take a DBA certification test in college.
• College Sophomore: Develop your own website.
• College Junior: Learn at least 3 languages.• C/C++
• Java (derivative of C)
• Language of choice for your industry.• Swift/Go/Java for mobile.
• C#/Java/Python for desktop.
• C#/Ruby/PHP for web.
Future of Development
• Startups will rise and fall, with the occasional buyout.• 93% of all startups fail within 5 years.
• Mobile expansion, but never dominance.
• Everyone wants to be the next Notch (of Mojang fame, Minecraft). Game development is not the be-all, end-all!
• Databases continue to thrive and expand. Every bit of data is stored in a database.
• Cross-discipline workers. The networker who can code, the programmer who can network. Be prepared to wear many hats. DevOps is the buzzword of tomorrow!
• Be prepared to compete on international level.
• Time-destructive code.
• Less and less focus on certifications, more and more focus on degrees.
Final Words
• Failure is an option, and a good learning experience.
• You learn far more from a good failure than a mediocre success.
• Accept the constructive criticism and improve your development for the future.
• Never be afraid to go into uncharted territory.
• Never turn down an opportunity to learn something new.
• Never give up, never surrender!