There's too much to know about Programming....where do I start and how do I climb the ladder
How can I gain the required programming experience to climb the ladder? #computer-science #programming #it
3 answers
Allan B.’s Answer
Alisha,
A great and very timely question!
The programming landscape can indeed at first seem a little intimidating, even overwhelming. The trick to navigating it is to think of it as a really large "climbing wall", the kind you might see at a carnival or in a high-end fitness center. Such structures are comprised of hand and footholds in various shapes/sizes; on a particularly large wall there would be dozens and dozens of these. The thing is, numerous (and, very often, colorful) though they might be, the only ones that should REALLY concern you as a climber are the ones that will ultimately get you to the goal: the top of the wall. You may not even know which ones those are until the very moment they present themselves as useful during the climb itself. From the top, looking down, you won't care about which ones you passed over, and they won't matter unless you decide to scale the wall again along a different path.
The point of the wall analogy is this: the technology landscape is large and diverse, no question, but the only "right path" through it is the one YOU decide to take, the one made up of the languages and frameworks that are of interest to YOU. Whether it's JavaScript or Java, C++ or Scala; whether it's Spring, or Node, Angular or React: choose first what excites you. Do you see yourself architecting large-scale enterprise systems? Are you looking to develop dynamic User Interfaces for highly interactive web applications? Find your passion and then sprint after it. Ground yourself first in the fundamentals (logic, basic software design patterns, data structures, etc.) that are applicable to ALL development approaches and you'll have made yourself a wonderful programming "cake" that you can then frost with whatever pet technologies you fancy.
The landscape is large, but not nearly as large as your ability to conquer it. Go get 'em.
- Allan B. Ashenfelter
Eric’s Answer
Hi, Alisha!
I have found that the best way to get into programming is a combination of practice on your own, and studying in classes.
For the parts on your own, find things you are interested in and work on that. To start with you won't be able to make anything near what you're used to seeing from professionals, but take small steps.
As a first self-driven step, I recommend Code Academy: https://www.codecademy.com . It is directly relevant if you are interested in making anything on the Web. If you would rather work on something else, like Android or iPhone apps, then I recommend learning Python or Ruby on Code Academy. While they aren't the languages you'll use, they will help you practice thinking in the ways needed for most programming.
Once you have the basics down, focus in on the kinds of programs you want to make and learn in little pieces. If you want to make Android games, then first you might learn how to just make a button that displays a blank screen on an Android phone. Then make words appear. Then make an image that moves. Then let the touchscreen control the image, and so on. Don't get discouraged, and set it aside when you need to take a break.
Meanwhile, if you have the opportunity, take classes. College Computer Science courses can teach you a lot about algorithms, data structures, and development that otherwise might take you a long time to learn on your own. If that isn't available, or the classes aren't fast enough for you, there are a lot of useful resources online, like the Mozilla Developer's Network (http://developer.mozilla.org) and MIT's Open CourseWare (http://ocw.mit.edu/index.htm).
Of note, try to pick up multiple programming languages. Each one will tend to show you new ways to think and look at problems. There are a huge number to choose from, and the more you learn, the easier it is to learn yet another, because you come to understand the underlying structure of all programming. As a result, it doesn't really matter which languages you start with, as long as you don't stop there.
College courses alone are not enough to give you the experience you really want to stand out in a career, so keep programming on your own, writing whatever interests you, even while you take them.
I don't have too much I can add about furthering your career once you have a job, since I am still relatively new. The essentials remain, though: keep learning new technologies and challenging yourself.
Guy’s Answer
Hi Alisha! As you can see from my title, I do not focus on programming but nonetheless I must know, intimately, several languages so that I can do my job. Though I did start wanting to be a programmer and took computer science classes, that road did not pan out for me. But, again, I do program almost everyday.
There is a cat named Bucky on the newboston youtube channel that offers up lessons on many languages, and he is funny to boot. If you are interested, just dig in. Nothing stopping you! Youtube and hundreds of other websites can give all of the free programming tutorials that you can stand.
Now, the ladder part. To climb any ladder, you have to be good or be lucky. As many would say and agree that it is better to be good than lucky. With lucky, you may run right out of luck if you lucky charm leaves the company. Then you will have to produce. But when you are good, you succeed and finish your projects on time. When you feel like you can handle it you let your manager know you want more responsibility.
If that strategy doesn't result in reward, ie promotions, then know that sometimes you have to leave to get that next big gig. Very common. Be demanding about your career path. Being assertive and learn how (if you are not yet) feel confident in your skills and leadership abilities.
So, Good Luck. Our part of the workforce is a cool place to be and you can be a part of it, maybe even one of the future leader!