In the former years of my ICT career, I was a computer programmer. In fact, I got first college degree in Computer Programming and Applications. And, working in a UNIX environment further motivated me to seek a better understanding of programming languages, especially, the C and Java programming languages. Moreover, I was fortunate to have attended several boot camps and training programs, all paid for by my employers and myself. Yet, I am inclined to believe that the incredibly humongous amounts of personal time spent "religiously" learning and writing code when I joined the Open Source community, significantly contributed to what I consider my successes. You see, as a young man, I had an unwavering passion for computer programming because, "I have always believed that the solution is in the code." That passion earned me a scar on my right hand; the result of a surgery endured for tendonitis. I have grown older and wiser now of course, but I enjoyed every second of those years.
Computer Programming is a fast growing field in this technology-driven world. It allows us to create software and operating systems for devices ranging from mainframe computers to smartphones. It is an interesting field of study that not only pays well, but also is responsible for the many changes the world has seen. So, today I have chosen to write this article in hopes of inspiring, guiding and motivating others, especially high school seniors and college students, toward the field of computer programming. Ostensibly, this is one of the many areas in which Liberia lacks human capacity. Therefore, if we intend to be a "DIGITAL LIBERIA" we must help the young ones gravitate toward this field.
There are several ways to gain knowledge. In my opinion, it is the approach we choose to learn something that enables us to succeed. We usually succeed in gaining knowledge when we adopt a form of learning with which we are comfortable. In the case of computer programming, there are three main ways to learn how to be a computer programmer; through obtaining a college degree/diploma, attending boot camps/trainings, or by being self-taught. Each of the above-mentioned approaches, is based on the individual's willingness to learn, financial standing and sense of responsibility. In the following paragraphs, I discuss the three ways of learning how to be a computer programmer. Note, that this article is based on my personal experiences. Others might have had different experiences.
Attend College and Get a Degree: Getting a college degree in computer science, software engineering, information systems, computer engineering, information technology or electrical engineering, is the formal way to be a computer programmer. It allows you to learn the theoretical aspects of computer programming and gives you the opportunity to network with professors, classmates (for help with school work or with your career), and other stakeholders. College degrees give a well-rounded education and prepares a student for other careers, should that student decide to change career. Also, most employers tend to employ computer programmers with a degree in their discipline. While getting a degree gives you competitive advantage, it can take a longer time achieve your dream of being a computer programmer, it can be expensive, and it requires you to learn a lot of things you may not need in your career. The way to avoid taking courses that you don't need in your career is to attend a technical or/vocational college. A technical college gives a two-year degree that focuses on your computer programming skills. With a 2-year degree, your chances of moving up to higher heights within your organization can sometimes be slim.
Attend Boot camps or Accelerated Training Programs: Attending boot camps or accelerated trainings is a quick way to become a computer programmer. In this form of training, you can become a computer programmer in a shorter time than going through a four-year degree program. You will also learn from real-world experienced teachers and you will get about 90% hands-on or practical knowledge in computer programming. You will also meet a lot of people to network with and better your skills or advance your career. The downside to this is that you do not get a college degree; you do not learn other disciplines that can prepare you for leadership (CIO, CTO, and CEO) positions; and boot camps can be very expensive.
Self-Training:. Teaching yourself is relatively cheaper than paying thousands of dollars for a college program or a boot camp. It also allows you to learn at your own pace. Yet, success via this approach requires unsurpassed discipline, confidence, patience and time. With the Internet (the largest library), this approach allows you to learn using various media (textbooks, videos, how-tos, audios, chat rooms of professionals, community of professionals, online journals, the Open Source Community).
Each of the above learning approaches can help you become a computer programmer. Whatever approach you adopt, make sure you do three things. Learn the Basics/Fundamentals; Learn by Doing and Apply Learned Knowledge.
LEARN THE BASICS: Learning the basics prepares you for a lot of things including enabling you to tackle or have an idea of how to tackle different types of programming languages. Understanding words and terms like: Algorithms, pseudocode, abstraction, do while, conditional statements, for loops, Software development Kit (SDK), etc., are very necessary in this journey.
LEARN BY DOING: Learning by doing is a practical way to understand all that you have read. It gives you the ability to learn new things in a more practical way. Being able to tinker with or reverse engineer computer programs can make you a better computer programmer. I briefly mentioned above that I spent a lot of time in the Open Source community. A lot of the projects I have done in my career are based on works from the Open Source community. This is one, if not the best, place to learn how to code!
APPLY KNOWLEDGE LEARNED: The Open Source community is inarguably the ideal place for a person to become a better programmer. It provides the tools and support that are needed to be a computer programmer. It also provides software that learners can tinker with, which gives you an opportunity to apply your knowledge. So, a learner can identify a SDK (a fancy word for a tool box), and start practicing how to program.
Finally, should you choose any or all of the three approaches discussed above on how to become a programmer, make sure you are ready for the journey. It is not be VERY easy, but it is achievable. And, you might experience some failures along the way; don't allow them to deter you. Remember, "THE ONLY REAL FAILURE IS FAILURE TO TRY". So, keep trying, and trying, ultimately, you will succeed. Until next week,