What is a Software Developer?
With the growth of the internet, many American companies complain that they can’t find enough software developers to cover their needs.
Before we explain how to become a software developer and conquer Silicon Valley let’s discuss about the job description of this profession.
The work of a software developer is to create computer programs for business and personal use.
They also create applications that let users perform tasks on tablets or smartphones.
The daily duties of a software developer are:
- Analyzing user requirements
- Designing, research and write new software programs
- Testing new programs and find bugs
- Evaluating the systems and software that makes hardware work
- Developing already existing programs by finding areas that need improvement
- Creating test plans
- Writing the documentation of a computer software or an application
- Staying updated on new technologies
As a software developer you will need excellent problem solving skills as a big part of your work will be finding flows at software and come up with ways to fix them.
You will also need to have the ability to learn quickly as technologies change quickly in the programming world and continuous education will be a part of your work.
Finally you will need to have great communication skills as you will be working as a part of a team along with other professionals like graphic designers.
Software developers work mostly full time. Their work spaces are company offices equipped with latest technology computer systems.
A lot of software developers follow the self-employment path and work from home.
The average salary of a software developer is $105,590.
Software Developer Specialties
There are a lot of specialties for software developers. Below we have listed the five most in demand nowadays.
Cross-platform mobile developers
Different smartphone brands use different operating systems (OS).
When an application comes out the company must ensure it is compatible with all operating systems.
This is the work of cross platform mobile developers, their work is to make sure the application is compatible with all operating systems by testing, and if they find a bug or incapability come with a solution.
Mainframe/cloud integration specialist
While cloud storage and web applications are taking over the computer world, mainframe computers are still the king for huge retailers, banking systems and other big corporations.
Software developers that have the knowledge to work both with mainframe and cloud integration systems and bridge them are high in demand.
Cloud migration engineer
While mainframe is still the king for some companies as we discussed before, there is no doubt that the trend is towards cloud based storage.
Because unlike mainframe cloud storage is something new and not tested enough there are not many developers with the knowledge of cloud migration.
Moving software applications from mainframe computers to cloud or even from a cloud storage service to another is not a copy paste process.
This is a work done by developers who need to have in depth knowledge of APIs, SLAs and other supported technologies.
RIA portability specialist
While Reach Internet Applications like Flash and Silver-light are slowly dying, especially after Steve Jobs blocked them from Apple’s iOS, developers with the knowledge of RIA’s are high in demand.
But how is that possible?
While it is truth that RIAs don’t have big time left there are millions of applications using this technology and they need to get converted to HTML5 as fast as possible. In order to do this conversion a software development with a solid knowledge of HTML5 is needed.
Parallel computing architect
With the rise of multi-core CPU s, a software must be written with the multiprocessing philosophy in mind.
While major tool providers are developing languages like IBM x10 and Google Go in order to make multiprocessing easier to the developers, the truth is that they are not very helpful for them.
New tools and languages will not solve this problem. Parallel computing is one of the least understood areas of computer development. Concurrent applications need a new way of thinking, and the developers who will master this will be really high in demand.
Becoming a Software Developer
Step 1: High School Preparation
High School Courses for Software Developers
Math Courses
Take as much math classes as possible like algebra calculus and trigonometry.
While you will not use math directly when writing a computer program, the way of thinking between math solving and programming is the same.
Also when you go to college you will have to complete a lot of math classes, so having a solid knowledge from high school will help you with this.
English Courses
While this is not as obvious as math, you should take as much English classes as you can.
As a software developer you will need to talk a lot by emails, use instant messengers, post to forums questions and write documentations for your programs and applications.
Science
Take all science classes like biology, chemistry and physics with the most important being the last one.
As an application developer you maybe need physics knowledge during the development of an application (think about angry birds).
But this is not the main reason to take physics.
Scientific method is almost identical to debugging, you first find the problem, then find a hypothetical solution to the problem and finally conduct an experiment to see if your hypothetical solution was right, rinse and repeat.
Step 2: Get a Software Developer Undergraduate Degree
Programming and software development Associate’s Degree program 2 years
When thinking of pursuing a software development career you will need at least a bachelor’s degree, but because the admission requirements for high school students are pretty tough an associate’s degree is a good option to help you get accepted at a bachelors program.
Programming and software development Associate’s Degree programs are 60 to 70 semester credit hour programs that can be completed either on-campus or online.
In order to get accepted you will need a high school diploma with a GPA over 2.0
Curriculum
General Education Requirements (27 credits)
- Introduction to Psychology
- Critical Reading &Expository Writing (CREW) I
- Critical Reading &Expository Writing (CREW) II
- Interpersonal Communication
- Technical Writing
- Intercultural Communication
- Calculus I
- Discrete Mathematics
- Ethics in the Professions
- Writing in the Workplace
- Microeconomics OR Macroeconomics
- Lab Science
Core Courses (33 credits)
- Web Page Development I—HTML
- Networking Fundamentals
- Information Systems Analysis and Design
- Introduction to Computer Systems
- C++ Programming I
- Relational Database Design & SQL
- C++ Programming II
- Computer and Network Security
- Project Management
- Data Structures & Algorithms
- Enterprise Database Systems
- Linux/UNIX Programming I
- Usability in Website and Software Design
- Applied Software Practice I
- Cloud Computing Security
- Operating System Security
- Operating Systems Architecture
The cost of an Associate’s Degree in Software Development program is between $11,500 and $42,750.
Bachelor’s Degree in Software Development program 4 years
These are 120 semester credit hours programs that can be either online or on campus.
To get accepted at a program like that you will need either a computer related associate’s degree or a high school diploma with certain courses like math and science and 60+ hours of computer training.
Curriculum
General Education Requirements (45 Credits)
- English Composition I
- English Composition II
- Applied Finite Mathematics
- The Heart of Mathematics
- Precalculus
- Applied Calculus I
- Applied Calculus II
- Mathematical Proof and Problem Solving
- Discrete Mathematics
- Applied Statistics
- Diversity
- Global Society
- Wellness
Core Courses (24 Credits)
- Object-Oriented Programming I
- Object-Oriented Programming II
- Mobile App Development
- Web Application Development
- Cloud Application Development
- Design Patterns
- Software Engineering
- Mobile App Development II
- Relational Database Concepts and Applications
- Web Scripting
- Detecting Software Vulnerabilities
- Database Security
- Server-Side Scripting with Ruby on Rails
- Secure Programming in the Cloud
- Intermediate Java Programming
- Advanced Networking Using Java
- Current Trends and Projects in Computer Science
Elective Courses (21 – 32 Credits)
- Applied Project Management LAB
- Cloud Computing Concepts
- Introduction to Routing and Switching LAB
- Intermediate Routing and Switching
- Network Routing and Switching LAB
- Network Security Concepts
- Web Client Scripting
- Object-Oriented Programming Using JAVA
- Object-Oriented Programming Using VB.NET
- Storage Area networks and Disaster Recovery Lab
- Server-Side Scripting
- IP Telephony
- Windows Client and Server LAB
- Database Scripting I
- Advanced Windows Server
- Network Visualization Fundamentals Lab
- Windows Active Directory
- Windows Active Directory LAB
- Intermediate Database LAB
- Advanced UNIX Administration
- Advanced UNIX Administration LAB
- Web Animation
- Web Site Management
- Web Site Management LAB
The cost of a Bachelor of Software development ranges between $23,500 and $60,800.
Step 3: Get a Software Development Graduate Degree (Optional)
Master of Software development program 2 years
Master of Software development programs are 28 to 48 semester credit hours’ program that can be completed mostly on campus.
In order to get accepted ta a program like that you will need a computer related bachelor degree with a GPA of at least 2.75.
Curriculum
Core Courses
- Software Design and Development
- Algorithms
- Computer Networks I
- Advanced Theory of Programming Languages
- Distributed Systems
- Computer Networks Laboratory
- Software Design Methodologies
Elective Courses
- Operating Systems
- Compiler Design
- Computer Architecture
- Automate, Compatibility & Formal Languages
- Database Management
- Artificial Intelligence
- Computer Graphics I
- Special Topics in Computer Science
- Distributed Database Systems
- Computer Graphics II
- Computer Networks II
- Applied Artificial Intelligence
- Thesis
The cost of a Master of Software development program is between $22,500 and $45,500.
Step 4: Pursue Continuing Education
Because the software development world is moving at a really fast pace, the education of a software development never ends.
In a world where 2 year old technologies are considered old, continuing education is not a just option but something you have to do.
Every couple months’ job positions open in fields that didn’t exist couple months ago so in order to advance your careers you should stay updated on the latest technologies by attending seminars either online or offline, participate in mastermind groups and forums.
How Long Does it Take to Become a Software Developer and How Much Does it Cost?
Option 1 : Associate’s Degree
Degree | Time | Cost |
---|---|---|
Associates Degree | 2 years | $11,500 – $42,750 |
Certification | – | – |
Total | 2 years & 1 month | $11,500 – $42,750 |
Option 2 : Bachelor’s Degree
Degree | Time | Cost |
---|---|---|
Bachelor’s | 4 years | $23,500 – $60,800 |
Certification | 1 month | – |
Total | 4 years & 1 month | $22,730 – $140,060 |
Option 3 : Master’s Degree
Degree | Time | Cost |
---|---|---|
Bachelor’s | 4 years | $23,500 – $60,800 |
Master’s | 2 years | $22,500 – $45,500 |
Certification | 1 month | – |
Total | 6 years | $46, 500 – $106, 300 |