When I first became a computer programmer there were only 2 types of programming jobs to choose from. You either had to write code for a mainframe computer or what was then called a personal computer (PC). I did not have any interest in programming on a mainframe. Although I learned how to use languages such as FORTRAN and COBOL, this kind of software development did not interest me. Today, there are a few more choices for the new programmer. Before you get too far down the path on learning your craft, take a step back and decide whether you want to develop software for the web, mobile devices, or the desktop.
2. Learn the fundamentals of programming:
Do not equate learning a language with learning the craft of programming. These are 2 different skills. To be a good developer, there are at least 2 skills that you must master. You must learn how to program and you must learn how to use a programming language. I have seen many people make this mistake when transitioning from other careers into programming. In some ways, programming is problem solving. Learning a language will not help you to problem solve, and the problem solving is the essence of computer programming.
3. Choose a Programming Language:
Earlier I mentioned 2 programming languages that I learned in college for programming mainframe computers (FORTRAN & COBOL). Today there are many more languages to choose from. Over the years I have used many languages. I have never used COBOL or FORTRAN professionally, but I have used languages such as Clipper, PowerBuilder, C++, C# and Delphi. There are many languages such as Java and Python that I have never used. Some I care for, some I do not. Take your time and explore some of these languages and determine if you like one more than the others. Solve a problem using one of these languages. You might also do a search on Monster to see which languages are most in demand. For years Visual Basic was THE most popular programming language. I read recently in an article that there are over 14,0000 jobs available for PHP.
4. Determine the best way for you to learn the craft of programmng:
There are multiple ways to learn the art of programming. I wrote a recent post here regarding several ways you can go about becoming a computer programmer. No one way is better than the other, the key is to find what works for you. I actually went to college and earned a degree in computer science. This worked for me. But in my professional career I have met many colleagues who have taken very different paths to arrive at the same destination. Choose the path that best fits your situation. I am also a Microsoft Certified Trainer (MCT). In order to become certified you must pass a series of exams. For this credential I was able to used the MS self-paced training kit and I was very successful. Figure out what works for you.
5. Determine if you enjoy the work:
After completing steps 1 through 4, take a step back and evaluate what you have learned. Take a moment to reflect and determine if you are enjoying the work and knowledge you have obtained. There is nothing worse than being locked into a career or job that does not energize you. At this point, you should have some feel about whether or not you enjoy what programming is. Do you see the kinds of opportunities you had envisioned before started out on the journey. Is the work as challenging as you thought? Are the problems you are solving interesting? If you have reached this point and you feel good about it, then you are well on your way. Now you just need to gain experience. Practice makes perfect. From this point you simply need to do what programmers do, program!


28 comments:
The problem with me is that I don't focus on a single programming language. You are right maybe I should pick one and master it.
web design Los Angeles
Flex,
I am honored that you are reading the blog, I hope you are finding the information useful. I would not say it is a problem that you are not focused on one language, I was writing that from the standpoint of someone who is starting out to become a programmer. I do think in that case you should focus on one language initially. But over the years, I have programmed in many languages. I never really became married to one, but was more concerned about the opportunties that were available. For example, recently I read an article that indicated there were 14,000 available jobs for PHP programmers. That would be a clue for me to spend some time learning PHP.
I am just starting my journey into programming. I currently work for a software company as a system engineer. I am at a junior level but I have already decided that the avenue that I want to transition into is programming. The question that I have is how to develop the problem solving side of the job? Books are great resources to learn the syntax and coding part. But tackling how to approach the problems one encounters is the intimidating part for me.
Hi Marlon,
So happy to see you are engaged? What part of the country are you in? My first suggestion is to learn to think logically and analytically. The way you would solve a math problem. The other part would be once you have thought out the solution or algorithm, then you use the tools of your langauge (loops, decisions, etc) to execute your plan or algorithm. There are also good books on problem solving. Let me know what you think.
Marlon,
Check this quote:
“Computer science taught me how to think about things, how to break down and solve complex problems,” Ms. Lehtomaki said.
Here is the link to the article. You may consider enrolling in an introduction to computer science course:
http://www.nytimes.com/2009/12/21/technology/21nerds.html
Thank you for the information. I am in Maryland located right between Baltimore and Washington DC. so there are no shortage of jobs in IT in my location. I guess I shouldn't even be asking this question yet but I just wonder when I will feel comfortable to start applying for the types of jobs advertised. So many of the job descriptions list so many qualifications that you wonder if anyone is qualified.
Marlon,
Feel comfortable now. I have been in the game for 25 years and I don't have most of what these jobs are asking for either. No one does. That is a problem of the recruiters. Look at what the main qualifications and if you have those I would go for it. Focus on what is required and not so much on what is preferred.
Kai
Thank you coming from you that makes me feel 100% more confident. I am at a company where I like what I am doing but still not as technical as I want to be. At this stage I am responsible for rolling out the code to unix servers and sun web servers. I want to be the one writing the code. Also, at least at the company I work for, the engineers are never given as much respect as the developers are. Plus I have always fashioned myself as a creative person and a logical thinker. Just as a last note, as an African American man I was surprised at how special I felt when I came across your website and found your blog. It makes a world of a difference to have role models who are in the field that I aspire to be in.
Hi Marlon,
Thank you for your kinds words. It is absolutely why I am writing the blog as well as some of the other work that I engaged. You say you want to be the one writing the code. Do you mean for your current company or else where. Also, we can use chat to have a conversation or skype where I can answer these questions for you. You can email me at kaidupe@gmail.com to setup a time if you like. But I definitely understand wanting to be the one writing the code that is where it's at.
Thank you. I appreciate the help. My email is marlon10@comcast.net. I would live to see if you would be available but I am at the stage where I don't even know what questions to ask. I am still trying to find that one book that gets me over the hump to really understanding the basics. Something that will give me that confidence to go forward with this career change.
Marlon,
Are you aware of the Web Academy? They are online. Not knowing which questions to ask is perfect. I will send you a note so we can setup a session and we can figure out where you are and how best to move you into the direction you wish to go.
Kai
Hi,
I'm interested in programmer but not just as a programmer but a computer science researcher. I'm currently in my local Community College studying for a computer science transfer (taking general ed classes now though) degree and might get a temporary job as a programmer to pay my bills. But my overall goal is to do research in Computer Science / Mathematics.
rocky.louis@live.com
Rocky,
That is excellent. I hope this article helped. Let me know if there is anything that I can do help you reach your goals.
Kai
Thanks, I wanted to ask if I have to have a lot of math to start programming because now I'm taking a fundamental math course (lowest one) and wanted to know if math has anything to do with it. I know that if I want to do research I'll have to use lots of math but for now I just want to get the programming basics.
Rocky,
I would not say a lot of much, but there is some math. I took a lot of math while I was in high school. Courses such as Algebra and Geometry. I did not take those in college but I did have to take several courses in calculus. If you are starting at the lowest level that is great. It will give you a good fresh foundation to build upon.
Kai, I'm enjoying your dialogue about computer programming especially coming from African-American point of view. I've been in this field only few years and it's not whole lot of our people in this area of expertise. It would be so awesome to start a network of IT professionals concentrated but not isolated to African-Americans. Of course we never want to neglect anyone but it would be nice to have some IT pros go talk about their issues, skill set, etc... in the work place. It seems so lonely out here in this field with not whole lot of African Americans in this field. Thanks again for the good posts.
Hi Marcus,
Thanks. Yes there is definitely an isolation aspect. I have a post here on the blog regarding networks that you can join. For an online community check out blacksintechnology.net. They interviewed me a few months back. They are new and they are striving to build what you have described. Also, depending on what city you are in find out if there is a BDPA chapter in your city. BDPA is the Black Data Processing Associates. They are going great things, but it depends on the chapter. Let me know how it goes.
Kai:
Great information and thanks for the mention.
@Marcus, I definitely encourage you to join the site. It's free to join and it's a great community. Right now we have close to 400 members on the site. The support on the site is awesome and there are definitely some software engineers willing to answer any questions and help you out. I am currently working on the redesign of the site as well as some interesting things to help facilitate communication and learning. Check us out at http://www.blacksintechnology.net
Greg Greenlee
Owner/Founder of Blacks In Technology
http://www.twitter.com/blkintechnology
@Kai:
Great information and thanks so much for the mention.
@Marcus:
I think you will enjoy the Blacks In Technology community site. It's exactly what you are looking for and it's free to join. We are working on redesigning the site and making it more intuitive and easier to navigate as well as providing additional features to help with education and knowledge sharing. We would love to see you become a member. Check us out at http://www.blacksintechnology.net
Greg Greenlee
Owner/Founder of Blacks In Technology
This communication is very exciting.
Hello Kai great blog keep up the positive work!
I love your blog stay positive and please continue to be the male role model the world needs!
Hi,
sorry it took so long for me to respond. For some reason I am just now seeing this. Thanks for your kind words. I have not been blogging as much lately but I am about to get back on track. there is so much to say.
Kai:
Great blog and great comments on your part. I live in Prince George's County Maryland. I work in the IT field. I am interested in programming and connecting with programmers for purely practical reasons. I want Prince George's County to be the premier location for cutting edge tech tools, companies,and entrepreneurship. I want a hotbed of tech creativity between locals and transplants to be nurtured and financed in the so called "wealthiest African American county" in the US. I think tech is a way for Prince George's County to brand itself and attract creative, entrepreneurial, think out the box techies, musicians, film makers, animators, and tv innovators. The residents, County government, and business community have to create a welcoming and engaging atmosphere for these types to collaborate and flourish. Unfortunately, I have not met or heard of many African-American programmers in this county. Your comments and guidance might help us grow more at our great community college Prince George's Community College and great university The University of Maryland.
Hi PrinceGeorgesOne,
Thanks for the kind words. I have not been able to write here as much as I did before, but I am getting back to a few posts a week. I love that you wish to connect with other programmers. I think that is smart. I setup a group called BiTWiSE on LinkedIn and Facebook. The idea for BiTWiSE (www.WeAreBiTWiSE) is to provide a place for Black Software Engineers to network. We had an offline event in Austin last June and it was great. I love your vision for Prince George County. I think that is a great idea. I do not think you need to go to Silicon Valley to participate in tech. Many do and I vehemently disagree with them. You can bring the same ideas, innovation, creativity, and have your community prosper and benefit from your efforts. What you are suggesting is what I experienced when I lived in Austin, Texas. I am doing all I can to make a difference. Please check out BlacksInTechnology on the web. It is run by my friend Greg Greenlee and that is a great place to connect with a community of Black technologists. Connect with BiTWiSE for AA Software Engineers and research and see if BDPA has a local chapter in DC. I am sure they do in fact BDPA is hosting their National Technology Conference in Baltimore this year. That would be a great place to connect with other black technologist and the DC chapter. I will be there as well. Lets stay in touch. You can catch me on Facebook or Twitter or send me an email at kai.dupe@kaidupe.com
hai,
i wud like to be a programmer.but i am just a beginner in this field and i know the basics in c language as well as c++.please suggest me how can i expertise in programming and be a pro programmer.
hi sir,
i am a beginner in programming field.i know basics of c nd c++ languages.but i want an expert advisory of "how can i expertise in this field an be a pro programmer".please help....
Hi Sarah,
Let's setup a time to chat.
Post a Comment