This is a step by step guide to starting a rewarding career in computer programming. Because I have seen these steps work for myself and my computer programming colleagues, I believe it is a reasonable practical guide to starting a computer programming career especially in the USA.
As a background, I have worked in information technology for more than a decade and the majority of my career has been in computer programming. I have done stints in information technology management, project management, network administration, web development, database development, software marketing and most recently IT career coaching. I have also worn the hats of freelance computer programming, contract programming and full time computer programming.
It is with the benefit of hindsight then that I have put together what I hope is a pragmatic, real world, street smart guide to becoming a computer programmer.
Prepare to work hard.
Computer programming is a rapidly changing field. You have to be ready to study as many books or read as many online articles as it takes for you to understand a concept. Be sure you are ready for the fast pace of innovation in the industry. Be ready to spend 3 months learning a technology only to have that technology replaced by a newer technology within 12 months its inception. Be ready to spend long hours in Barnes & Noble or Borders or other bookshops learning about new developments in the information technology industry throughout the life time of your career. Be ready to go home and peruse the latest articles on the latest buzz words after a full day of coding. Be ready for your software applications, database or website to fail just before itâ€™s time to leave the office, causing you to spend an extra hour tracking down the source of the problem.
Find a developer mentor and ask lots of questions.
Computer programming is a very practical field, so you have to find a community or mentors who can supplement your personal home study or self learning with real world guidance and help. Mentors and their supporting communities are there to fill in the gap between theory and practice, between what you read in books and the different contexts in which they are applied in real life. So, donâ€™t just hole up and study, find mentors and communities that are willing to evaluate your ideas and projects and give you real life feedback.
Choose a computer programming track.
Study about the several computer programming career tracks available and choose one. Some of the career tracks for computer programming include
- Database development career tracks for working with MicrosoftÂ® Access, SQL Server, Oracle or MySQL databases. Database developers can also become Database administrators or DBAs.
- Application development career tracks for computer programming generalists. These computer programmers create databases, windows, web and mobile applications. Application developers have to master at least one programming language like C, C++, Python, Java, C#, Visual Basic.NET, Perl, PHP.
Master the basics of software development.
Choose one computer programming career track and master the basic tools of the programming track. Endeavor to master the basic computer programming tools before you attempt to learn the more advanced computer programming tools used by more experienced software geeks.
If you choose the database development career track, master Microsoft AccessÂ® before you master MySQL or SQL Server and learn Oracle last.
The general rule of thumb is to take on simpler programming challenges before attempting harder, more complex challenges and to master simpler computer programming tools before learning harder, more complex or challenging computer programming tools.
This simple approach will help you to be productive with your career, master new software development career tracks faster and be more thoroughly grounded in the principles of software development.
Start building your experience and resume.
In the real world, experience is king, so start practicing what you have learnt by putting together websites for yourself and your friends. I emphasize web applications because it is easier for you to see how other people use your applications when you build them for the web. Without this sort of real world feedback, your learning will be incomplete.
Take one of the various open source software applications and create modules or plug-ins for them. Creating modules or plug-ins for open source applications is good because, you will see how other people write good quality code, you will get feedback from the open source community and a lot of peer to peer mentoring.
Web applications like WordPress (PHP and MySQL), DotNetNuke (ASP.NET and Visual Basic.NET) and Community Server (ASP.NET and C#) are well designed open source applications. By creating Plug-ins or modules that extend the functionality of these applications, you will jump start your learning curve.
Get used to commercial software development.
After you build up your experience and resume using the last set of techniques, start sourcing for free-lance computer programming projects under $500.00. These projects will come with some of the challenges of real world software development, some of which are
- working under time and budget constraints
- managing customerâ€™s expectations
- giving customers what they need and not just what they are asking for
- taking responsibility for delivering quality software products
- taking responsibility for the failure or success of a software project
- communicating or negotiating with clients
- prioritizing software features and development work
Get certified and hit the road.
You have earned your medal of honor. The time is approaching for you to showcase your resume to an employer or a client for a major software contract or project, do one more thing, get certified. A certification in a programming language will increase your confidence, increase your skill level, and increase your understanding of the programming language. Combining your newly minted experience with a certification will help your resume stand out to potential employers and clients.
Certification is the last skill building activity because it is more productive to get certified in a computer programming tool after you have used it for several real world projects. Otherwise, your certification will be that of meaningless memorization.
Choose full-time, contract or freelance programming.
Decide what type of a software development career will fit your lifestyle. To be a free-lance or contract programmer requires taking on more risk with the promise of a higher pay. Going full-time with a firm is less risky and may provide a gentler learning curve.
Choose a model based on your personality and life-style or based on the peculiarities of the job market in your city.
Get paid and earn some real money.
It is time to get paid! Now, take the time to learn how to take job interviews by reading my thoughts on the subject at â€œInsider Secrets To Interviewing Success : How To Get The Job You Wantâ€
How long will this process take?
While software development can be a life long cycle of learning, the time between when you decide to become a computer programmer and when you start making your living as one depends on you. It can be anywhere from 3 months to 1 year.
If you decide to pursue this career, you are an making an excellent choice for it has rewarded countless people including me with career flexibility, job satisfaction, career growth, intellectual challenge and above average compensation when compared to the medium income from most careers.