30 Things I Wish I Knew When I Started Programming
So you want to be a programmer; this list can set you on the right path
Programming is not an easy career. With many people graduating each year from top computer science programs in the country, it’s one of the most competitive careers anyone can embark on. At the same time, a programming career is exciting. With the advancement of technology, every day, there are innovations in the industry. Programming becomes a passionate endeavor for those who love it.
When I started as a programmer more than 15 years ago, I wish someone sat me down and told me everything on this list. This list can save any new programmer a lot of headaches and energy. This list can be the one you refer to as your programming career progresses. Even if some of these points might not be relevant for you right now, one day you will see the wisdom in them.
As a programmer, you are at the cusp of greatness.
You just have to venture on with a little bit of knowledge about your path.
1. You Don’t Need a Degree to Program, but You Do Need the Knowledge
I worked with many programmers who didn’t graduate with a computer science master’s degree or an undergraduate degree in computer science. Programming is one of the few careers you can have that doesn’t depend on a degree. However, programming is a knowledge-intensive career. You have to read those ten essential books if you’re going to start a career in programming. These ten books will cover the essential concepts of computer science as well as how to work on project teams. Setting a firm foundation for your technical skills, with a solid understanding of the basic concepts, on top of writing functional code, will enable you to ace technical interviews and communicate with your co-workers.
2. Programming Takes Creativity on Top of Problem-Solving Skills
Most people have the preconception that programming is all about analytical and problem-solving skills. That is partially true. Programming also involves a lot of creativity. Often, there are many ways to write a given piece of code. The creativity comes when you devise ways to code most simply and effectively.
3. You Can’t Learn Everything There Is to Learn. The Trick Is to Learn a Few Things Very Well
There are hundreds of programming languages out there. There are areas of programming that pave the way for particular career paths: web developer, front-end developer, back-end developer, software engineer, database developer, etc. Decide what kind of developer you want to be, then learn all the technologies and skillsets needed for that particular position.
4. You Don’t Need to Be a Robot. It’s Better If You Are Human
Remember you are a human first and a programmer second. It’s easy to get lost in your code when you first start to program. There are days when I don’t leave my computer until I’ve completed all the milestones of my project. But you are a human being; you need to laugh, cry, de-stress and talk to people. By managing your life to maximize fun and excitement outside of work, you will bring more creativity into your work as a programmer.
5. Programming Is All About Applying Knowledge. It’s Not About Memorization
Unlike research, where you are inventing and creating new areas of knowledge, programming is all about applying existing knowledge. Books, research papers, online articles, and learning videos become resources that you will use often. There’s no need to memorize anything. You can always reach for a resource to find the answer. Memorization comes automatically and naturally as you work on more projects.
6. You Will Deal With Imposter Syndrome Every Day
Programming is the one career all the “smart” people seem to gravitate towards. Unless you are a genius, you will, like I do, experience imposter syndrome every day. When you experience it every day, you tend to figure out a way to deal with it. For me, I’ve always used it as motivation to learn new things. I’ve learned to put it into perspective and just be content at improving a little bit each day.
7. You Have to Have a Life Outside of Being a Programmer. Otherwise, You’ll Just Be Addicted to Programming
There will be times when you are a hermit at home. However, to be a happy programmer, you have to proactively seek a life outside your computer screen. Often the success of your career depends on the people you meet. Networking is essential when you are a programmer. Having a personality outside of being a programmer is essential to keep yourself from being addicted to programming. When you can enjoy your passions without being compelled to do it, your best work comes out.
8. You’ll Learn Programming Faster If You Pair Program With Someone
At the beginning of your career, you’ll be tempted to close your door to the world and read those ten books on programming to build your computer science foundations. Guess what? You learn much faster if you find a buddy. I’ve gone through programming books in half the time working on a project with a buddy. When you pair program with someone, all your programming “warts” come out. Your code will be critiqued. You will learn to write efficient code because someone else is watching. You will want to find out the best way to do things because your buddy is learning too. When you work as a programmer, someone’s always reviewing your code. You are never programming alone. It’s time to get used to that.
9. You Don’t Need to Be Good at Math and Science
In the technology industry, you will meet all kinds of superstar programmers who found the logical thinking aspect of programming appealing after a lifetime of liberal arts education. There are plenty of painters and writers who make a living programming while pursuing art on the side. All you need to be a good programmer is persistence. Programming is hard work. But once you have that, anyone can go through programming books and pick up the basics. There are plenty of people who pick up math after working in the industry for a while. Eventually, these people can even understand complex algorithms and implement them without any kind of formal math education.
10. You Need to Be an All-Star “Learner”
A programmer is a master learner. You might not start out being a master learner. But you will get there. Sometimes your workplace will ask you to pick up three programming languages in six months. That’s the state of technology innovation. As programmers, we learn every day. Learning is like breathing. If you are uncomfortable with learning every day, you will be forced to get used to that.
11. You Will Obsess About Finishing Your Projects
Coding addiction is a real thing. At some point in your programming career, you will experience all-night programming marathons. You won’t want to go to sleep until you’ve finished your milestones. You’ll forget to eat, drink, or even get up from your desk because your brain is processing so much information. That is okay. Once you are done, take a walk outside. Go on vacation.
12. You Will Spend All Day Looking for One Tiny Bug
Most of the time, on programming projects, many pieces are interdependent on one another. Often, you will find that you cannot move on unless you’ve fixed one tiny bug that’s been lurking in your system. As a programmer, you will stress about the entire project unless you find this bug. You will sit at your computer all day looking for it. You will dream about the code at night until you find it.
13. You Will Spend Most of Your Time Googling for Answers That No One Can Answer for You
If you program in a popular language, you’ll be able to find the answers to most of the problems you encounter online. However, there are exceptions. Sometimes, no one has encountered the problems you bumped into. In this case, referring to programming books and asking around on programming boards often will point you in the right direction.
14. You Will Read a Design Pattern Book
It doesn’t matter if you graduated from the best computer science program in the country. There comes a time in every programmer’s career that you will sit down and read Head First Design Patterns from cover to cover. It’s probably one of the most read books for a new programmer. So, what are you waiting for? Pick it up and read it from cover to cover.
15. You Will Learn to Obsess About the Exact Spelling
At some point in every programmer’s career, you will have written enough code in your favorite language to want to do things your way. This includes the exact spelling of naming conventions that you give to your variables, your classes, and even the tables in your databases. You will scrutinize this to no end. The last thing you want is some bug that crept up because you misspelled a name. Remember, it’s okay to obsess about things if you have a good reason for it. When you don’t have a good reason for it, it’s just repetitive behavior.
16. You Will Give Up
How many times have I given up? I can’t even count. Sometimes you just bump into problems you can’t solve. Sometimes it gets so difficult that you just want to quit. Sometimes work environments make you want to quit. Your passions depend on your persistence. This is when you are tested. Are you here to stay or are you going to go? I always came back. Sometimes, after a few years of not programming a single line, I always came back as a new person ready to tackle a project. This is when you know you love your work. It’s when it becomes a home, a springboard for your adventures.
17. You Will Restart
If you believe in higher powers, you will be able to relate to this. Each time, when I see people come back to programming, it’s never about the money. It’s always for the love of programming. When you see someone who enjoys programming like you used to, you are envious. You can’t let it go. Then, suddenly, you are back pursuing a project. You know in your core that you live and breathe code. This is when you know that you are a true programmer.
18. You Will Go Back to Some Form of School to Learn the “Correct” Way of Doing Things
Even the best programmers graduating from elite computer science master’s programs will continue their education at work. In fact, on the job training is one of the best perks of working for large technology companies. Companies will send you on “expensive” courses and seminars to train you in the latest technologies they want you to use. If by chance, you’re still not learning enough at work, you will reach out to the many online coding academies and youtube videos to sharpen your skillsets.
19. You Will Be Hired by Someone You Don’t Want to Work For
Even if you are a mediocre programmer, there will come a time when certain companies will need your skills. When they are interviewing you, try to remember that you are interviewing them too. Depending on the company’s culture, you might find yourself wanting to say “no” to a cushy package. As a programmer, you will work long hours. It’s almost critical to find a company culture that you can fit into. Happiness leads to better work. If your skills are in demand, other companies will knock on your door. Please do not settle unless it’s necessary.
20. You Will Flunk a Technical Interview
Technical interviews are no joke. Senior programmers often make up technical interview questions for fun. Often, these questions are extra difficult for a reason. If you flunk the technical interview, it’s not the end of the world. It certainly does not say anything about your programming abilities. It only tests your knowledge base. Try to look on the bright side. If your people skills shine, managers will remember you. If they like you and you are not a fit for this role, they might still call you for another position.
21. You Will Be Told That You Are Great
At times in your career, you will feel like you are a star. Managers who depend on you to complete their projects will tell you how great you are to motivate you. You will feel like you are on top of the world. Remember that they are appealing to your ego. Stay grounded. There are always new technologies to learn. There are always new programmers who are better than you.
22. You Will Be Told That You Don’t Know Anything
At times in your career, you will feel like you don’t know anything. Someone who is frustrated with the project will make it a point to tell you that you don’t know anything. Perhaps they do this to put you in your place. But, since you are reading this, you will take it in stride. Because you probably know a lot more than you think you do. Each day that passes, you will learn a little more than the day before. After a year, people will look up to you. Keep at it. After some time, you may even gain the respect of the person who told you that you don’t know anything.
23. You Will Want to Compete With Other Programmers Who You Admire
One of the most awesome aspects of programming is competition. I love programming with people who I admire. When you can write code that a programmer you admire deems worthy, you will feel like you just won the lottery. Competition in programming is always in good fun. It’s not about who’s the best. It’s more about learning from each other.
24. You Will Not Understand a Word That Your Coworkers Just Said
In the beginning, this may happen once a week or once a month. At your new programming job, you will not understand what your coworker just said. This could be for two reasons. For the life of you, you just can’t get your head around their accent. In this case, ask another coworker to translate. There’s no shame in not being able to understand someone’s speech. Chances are, it took other coworkers years to get used to the accent too. The other reason is that what your coworker just said went completely over your head. That is also okay. After all, your coworker is the expert. Ask your coworker to explain it all in picture form. You’re going to want to pull up a chair for this. Chances are, it might take a while.
25. You Will Feel Shame Looking at the Spaghetti Code You Wrote Last Year
This happens all the time. I was criticized for my Perl code when I started. It was well-documented code that’s designed well, too. But I wrote it in a language that was difficult to read. So, I wrote the spaghetti code. But, each year, no matter how hard I try, I still find some spaghetti code that I whipped up quickly to get a job done. That’s what programmers do. We fix things and we patch things up. There’s no shame in that. When you realize that it’s you who wrote it, just step back and fix it if you can.
26. You Will Take Shelter in Your Database Projects When You Are Too Sick to Look at Another Line of Code
This happens when you’re on a nice programming trek up the mountain. It’s been two months. You need a break. But you love the momentum so you keep going. Then you realize that SQL is fun. You can’t figure out why you can’t look at another line of code. But somehow, putting data into the database and getting it out is now a joyful event. You revel in the simplicity of a completely logical language.
27. You Will Both Love and Hate Hackathons
Hackathons are common these days. Programmers get into teams and compete with each other. In the process, it’s intense learning in a few hours. You will love the hackathons for the camaraderie. You will hate it for the carpal tunnel syndrome that you developed while typing at top speed. You will also hate it for the crowded rooms that you work in and the sensory overstimulation that you receive during the event.
28. You Will Think You Don’t Understand a Word of English While Reading Research Papers
Do you speak English? Well, most people will say yes. But, I guarantee you that you will read some research paper over and over again and realize that it’s way over your head. For me, most of the research papers on algorithms seemed like a giant forest before I learned the foundations of college math. Then, suddenly, it all seemed to make sense.
29. You Will Buy Headphones
At some point in your career, you will realize that any kind of noise impedes your senses when you’re intensely focused on your code. Having good headphones that will cancel out external noise will allow you to work in crowded rooms with focus. At some point, you will also find that music helps you to code. I found out early in my coding career that the rhythm in music helps me code fluidly. Even now, I reach for some music when I need to be productive.
30. You Will Go to an Offsite. If You Are Lucky, It Will Be in Las Vegas.
At some point in your career, you are in the inner sanctum of the group of developers who are very important to your company. This is when you will be invited to an offsite. An offsite is a place where technology professionals socialize together. Upper management may use the chance to get to know you. Don’t get me wrong. It’s not the time to be carefree and just get drunk. It’s the time to socialize and network with your peers. If you are lucky, the setting will be in Las Vegas. Sometimes, it will also include a convention or conference with technologists from other companies.