Truth be told, it's hard to learn to code and take the right steps to succeed in the programming profession. And getting a computer science degree won’t make it any easier for you, because academic computer science is largely mathematics. While mathematics is important, it’s not what you need in a real-world programming job.
Don’t forget, you’re competing with over 18.2 million software developers worldwide. You’ve got to stand out and make yourself relevant, especially if you want to be the most sought-after developer.
To help you learn how to stand out in the world of developers, I’m going to walk you through the strategies you’ll need to make a difference in your career, and of course, be a financially successful software developer. These are basically strategies I’ve practiced myself over the years, and I still do most of them. They have been a tremendous help to me in my programming career. I believe if you try them, they’ll work for you as well.
1. Learn beyond the classroom
It’s fun learning to program with friends in classrooms. However, colleges don’t really give you room to actually code.
Most schools teach you the programming languages you’re not interested in—I wanted a career in web development. However, I found out that even JavaScript was not in our curriculum. Instead, I was taught C language, which I wasn’t interested in. And again, most of the languages being taught are outdated and are not used in a real-world programming job today (e.g., QBasic). So, at the end of the day, you might end up learning only the theoretical part of computer science and mathematics.
Don’t get me wrong, colleges do teach you how to program in a very structured manner, which can be beneficial. But I haven’t seen any professional programmers who become successful because of what they were taught in a classroom. In fact, you’re mostly just fed with the basics of programming, data structures, and algorithms—of course, it makes sense to know the basics, but it’ll require more than that to really be successful.
Wonder why 90 percent of software developers are self-taught?
No wonder over 26.9 percent of developers consider formal education to be only somewhat important. For me, I’m among those 11.5 percent that say it’s “not at all important.”
To succeed as a software developer, you need to be a “learnaholic.” However, that doesn’t necessarily mean that you need to be a bookworm—but you can’t be a college drop-out, either.
You do need to scavenge information on your own, though, even while you’re in college. You can start learning for free with codecademy or access premium, high-quality courses on Pluralsight, Lynda, or Udemy.
There are so many other online resources you can take advantage of, and depending on the technology you’re excited about, you can get a book on it to start with. I definitely recommend “Code Complete: A Practical Handbook of Software Construction” by Steve McConnell to get a firm grasp of programming. It’s a 900-page book packed with a lot of information you’ll need, whether you’re a beginner or a veteran software developer.
And for programming language-specific books, I recommend “Java How To Program” by Paul J. Deitel. It’s one of the simplest to understand, and it walks you through everything from what a computer is to becoming good at Java and programming in general.
I also love to listen to the conversation at the Programming Throwdown podcast by Patrick Wheeler and Jason Gauci. They are more than inspiring; they’re amazing guys. They interview great programmers on their shows and allow them to share best practices from a professional point of view, code reviews, workflow, and they discuss a lot about what’s new in different programming languages.
This article wouldn’t be complete without a mention of FreeCodeCamp. A lot of self-taught students have seen success with FreeCodeCamp. Although it takes time, it allows you to really learn to code well and gives you a lot of challenges you must complete before moving to the next level. Quincy Larson and the FreeCodeCamp team members are doing a great job there—they have one of the best resources to start and master programming on the platform.
Want to make the learning processes easier with an appropriate road map from a professional? Check out 10 Steps To Learn Anything Quickly; it’s thorough and teaches all you need to know to move from a wannabe to an expert.
2. Practice like hell
If you’re really serious about making a living with programming, you definitely want to practice like hell. The best way to learn and master programming, and stand a chance of making a living from it, is to try doing little projects consistently and then up your game with bigger ones.
Suppose you’ve chosen the programming language you want to master. The next thing to do is start learning it, and in the process work on a lot of mini projects, such as Hangman games, Blackjack, or even a love calculator. You can find more than a thousand mini projects to try from this subreddit.
In my beginner days, programming was hard for me; however, I scaled through by practicing consistently.
I wasn’t that great at grasping certain concepts easily. And considering that I have a functional programming background, it was a bit tough for me to wrap my head around object-oriented paradigms. With constant practice, I was able to do better.
Keep practicing. Don’t wait to get motivated—force yourself to study and practice.
It’s one thing to know how to solve a problem in theory; it’s another thing to really solve it with programming. Take on a lot of programming exercises—you can leverage hackathons to help you.
3. Be passionate about creating solutions
Is programming really your thing? You can hardly succeed in programming if you don’t have a passion for it. If your only drive is to make money, you might not make it.
You’ll quickly give up, because it actually takes time to really master the programming skills that’ll start generating the type of money you’re looking for.
But being passionate will allow you to learn in-depth, because you want to know. Being passionate means you do programming work like it’s a part of you, not some kind of punishment or tedious work.
If you’re truly passionate about programming, you’ll be happy to know that you’re making the world a better place by creating solutions that help humans solve their daily problems easily.
4. Practice finding problems
One may think there are no more problems to be solved, with the myriad of apps on the market today solving diverse problems; however, that’s completely wrong.
There are so many problems that can be solved with programming—you just need to look around. Be keen about studying people and businesses, and you might just discover a problem they’re facing that you can actually help them solve.
Use question and answer forums like Software Engineering Stack Exchange and try to answer tough questions. Also, you should join programming challenges on platforms like CodeChef, Topcoder, Coderbyte, Project Euler, HackerRank, CodeEval, Codewars, and LeetCode. Taking challenges on these platforms allows you to train yourself and to improve your skills. And it also allows you to compete with other programmers from all countries. Interestingly, you can win prizes at the end of some of the contests and get recognition as well.
5. Solve a problem on paper or a whiteboard first
Solving programming problems on paper first can help you to be flexible with iterations and be more relaxed. The easiest way to demystify a great idea without bothering about implementation too early is to use pen on paper or to use a whiteboard.
Before solving any problem on your computer, write the algorithm on paper, make mistakes, cancel them out, and allow yourself to be creative.
6. Don’t rush to Google answers. Try hard to solve problems until you can’t
Most programmers rush to Google anytime they get hooked with a programming problem. It makes sense to seek solutions when it’s obvious you can’t solve the problem.
Try your best first. Maybe sparing a little time to think things through could be just what you need to solve the problem. Figuring problems out for yourself allows them to stick in your memory and allows you to gain the confidence that you can do it, which is very important.
More so, if you do choose to use Google, you should learn how to use Google aggressively to search for the solutions you need quickly. You need to know how to phrase search queries, review what other people have discussed about the topic you’re researching, and apply what you learn to the project at hand.
7. Once you master solving simple problems, start tackling more complex problems
It’s expected that as you consistently keep learning, you’ll definitely grow. Don’t stick to solving only simple problems—move on to take the challenge of solving complex problems. Try your hand at making at least one Play War game.
Also, take on a real-life problem and create an app to solve the problem. When you go for a job interview, two of the important never-missed questions are, “What have you built?” and “What’s your Git repository?” That means you should know how to use version control systems like GitHub.
You can start by creating apps that already exist—by the time you build well-made projects that already exist, you would have gotten enough experience to tackle any new projects you might want to build in the future. Maybe clone it and try to add all the features on your own. When you feel you’re good enough, go ahead and work on your original ideas. Don’t stop.
8. Solve problems in your head
Ideas come at surprising times in our lives, sometimes in excitement and sometimes during our quiet time. Always try to make some effort to solve the problems in your head first when they come up.
Visualize the solution process in your mind before even writing it down on paper or on a whiteboard; thereafter, you can move to your computer to implement the process.
So even if you’re at the gym or in bed and an idea comes to you, create a mental picture of the execution process. I practice this anytime I get a new idea I’m interested in implementing. This exercise is important, because it can help you to test different approaches to solving a problem and determine whether the resulting path will lead to a viable solution.
9. Look at difficult problems (in math or real life) as opportunities to learn and grow
If you’re still in college, take all your programming assignments seriously. Use Project Euler to solve mathematical problems—Project Euler is incredibly useful, as it contains challenging questions at different levels of difficulty, and you increase your skills while you solve them.
To be honest, the projects on that site are tough, but they’re interesting as well. Just remember, in programming you need to do hard things now to make life easy for you tomorrow. Think through difficult life situations as well, and that can help you find ways to make apps that can make things easier. For example, it’s hard for people to keep track of all their activities for the day, week, month, or year. You can create an app to help people set their weekly, daily, or monthly goals; organize their workflows; and have an alarm that reminds them at some point of their progress and their unachieved goals.
Trying to implement the features in this app will allow you to learn a great deal. It’s not going to be the world’s best productivity app—don’t worry about that—but you would have learned so much by the completion of the project.
10. Get a mentor or join a coding bootcamp
Having a mentor will allow you to stand on the shoulders of software developers you admire, especially those with a lot of experience. They can make life a lot easier for you. You can use online tools like Codementor to find mentors you might want to work with.
Here is how to find a mentor: Find a programmer who’s more experienced than you are and offer to help them. For example, here is how I connected with Kathie Kinde Clark, Founder of Cleveland Startup Scene and Owner of Vociferous Marketing. I perused through her website and discovered that her lead copy was not strong enough to generate qualified leads.
I quickly sent her a message on LinkedIn, giving her suggestions on how she could improve on it. She thanked me, and from that point on, we’ve had a wonderful friend-mentor relationship.
Another way to find your mentor is to meet them through programming Meetups. If you know the Meetups they usually attend, join the group and connect with them from there.
While programming bootcamps are often very expensive, it’s actually worth it if you need to learn anything fast. Holberton School is free to get started and according to them, they succeed when you succeed. So you have to pay your tuition fee only when you graduate and get a job.
With coding schools, like General Assembly, Hack Reactor, and App Academy, you gain a level of prestige that many firms recognize and respect, making it much easier to land a job.
Bonus Point: Be focused: Don’t be a generic generalistic programmer—with that attitude, you’ll still call yourself a beginner even in the next five years. So, it goes without saying that you must pick a coding niche, focus on it, and be consistent. For example, you can choose to be a front-end developer, a back-end developer, a mobile app developer, or even a desktop app developer. Whatever you choose, focus on it and be good at it.
You’ll need a companion to walk the walk to becoming a successful software developer. The Complete Software Developer’s Career Guide is a success-guaranteeing guide every developer should have in their library. It erases the lies you’ve learned over the years about how to become a successful software developer. I personally love the part that teaches how to get a job without experience. Want to become a highly paid software developer? This book will be extremely helpful.
Never stop learning
The journey to becoming a successful software developer seems overwhelming, right? I agree with you.
However, if you want your life to be easy, do what is hard—if you want it to be hard, do what is easy. It’s going to take a while and it’s okay if it does. Success is not handed to you on a platter of gold. You’ve gotta fight your way through.
Be diligent, practice diligently (be in KaiZen), and be passionate about your work. You’ll most likely see success if you put these strategies into practice.