Stop Coding and Start Developing
By: Randal Kamradt Sr
Tags: JavaScript, Codingbootcamp, Github, Developer Tools, Software Development

Stop Coding and Start Developing

Thirteen things every novice developer should be doing

Photo by Brooke Cagle on Unsplash

Since re-joining Twitter and following a lot of new developers, I see something that I’d like to comment on without commenting on everyone’s posts. I see a lot of novice developers solving sophisticated programming problems with code, and some getting frustrated to the point of wanting to give up.

So I want to point out that since I’ve been a developer, the number of times I’ve had to code a balanced tree by hand is pretty much zero. Perhaps I did back in the early days of my career when I was programming in C, and the standard library was just a thin wrapper over the operating system calls. But this is a wonderful age of mature libraries filled with solutions to every programming problem you can think of.

It is nice to know how things like hash maps and balanced trees work, especially when you need to decide which to use, but it’s not imperative, and it probably isn’t the place you should start out. Unless you’re going to be writing frameworks, you don’t need that depth of knowledge. So pick a framework that some genius wrote and start putting the pieces together.

It’s also unfortunate that coding interviews are now games of algorithm roulette. I’ve actually told an interviewer I wasn’t going to solve his problem in real-time, the answer is out on the internet a million times over, so he should ask me about a problem I’ll be solving on the job. Of, course I didn’t get that job, but I got one soon after with a company that didn’t need to know if I could reverse a string or make a linked-list. But if you’re just starting out, you’ll probably have to play their little game and go through the whiteboard hazing. So before you interview for a job, search on the internet for interview questions and go over a few of them. But don’t start your coding journey with them.

Here’s a list of thirteen things you should be doing as a novice programmer:

1. Decide on a programming language

Pick one and stick with it for a while. If you want to be a web developer, you’re pretty much stuck with JavaScript, so you might as well focus on that. Although I’m a Java programmer professionally, I would recommend JavaScript, in general, to give you the most flexibility while you figure out what area of programming you want to focus on. It’s a simple language that you can run as a server or inside the browser. Plus it has mature tools such as NPM that have all the libraries and frameworks you will ever need to work with at your fingertips.

2. Install software

Not everything is SaaS, you’ll need to know how to install a programming language/runtime environment, a text editor/IDE, and other pieces of the software development process. I would go as far as to say stay away from places like CodePen.io. You should have the equivalent on your local development computer, and then you can package things up and send them off to Netlify (I’ll talk about that in a bit) which will be a lot more like a real work environment. Potential employers will probably look at something out on Netlify more favorably than something out on CodePen.

3. Get a GitHub account!

This is the main hub where we all share our code. Once you have a GitHub account, you should have a Git client installed on your development computer. I use the command line, as I’ve gotten used to it over the years. But there are plenty of GUI interfaces including GitHub Desktop. GitHub is also a place to find libraries and frameworks that you will be using and often have all the documentation you need in the README.md file. And, of course, if the documentation isn’t enough, the code is right there to try to decipher.

4. Get a cloud account

Most of the major cloud providers have free tier offerings. Several, such as Heroku and Netlify, will pull your code right from GitHub, do whatever packaging is necessary, and put it out on the internet for you. You can even attach your own domain name to your web applications. That will look very professional to potential employers.

5. Search for libraries and frameworks

Since, as a developer, you’ll probably spend most of your time inside frameworks and making libraries work with them, you should know what’s out there. Honestly, your choice of a framework should drive your choice of language and not vice-versa. It’s just that important.

The framework will also drive how you use your programming language, so you don’t need to learn every single aspect of a programming language, just the one that the framework uses. If your framework uses a functional style, learn that. Same if your framework uses object-oriented style programming.

6. Learn your framework inside and out

Much more important than learning every last detail of your programming language. Popular frameworks have hundreds of tutorials and examples out there. Try as many as you can, and don’t be shy about making different GitHub repositories for each. Try to pick opinionated frameworks at first, they’ll do the most work for you, and all you’ll really be doing is tieing up loose ends and putting your branding on it. Don’t get too frustrated if it doesn’t do exactly what you want, work within the framework as best you can. Some frameworks are so extensive, it’s almost like working with a CMS like Squarespace.

7. Know your tools

Eventually, every developer is going to have to deal with that darn command line, so get to know your terminal. Both Windows and Mac computers have terminal emulators, but a lot of code editors like Visual Studio Code and Atom have terminal emulators as well. In particular, you should know how to copy and paste into the editor, so that when you find the solution to the problem you’re facing on StackOverflow, you can copy and paste.

Get to know Git! Not just GitHub, but Git the program that drives GitHub. If you’ve got a group of friends that you’re learning with, try working on a project together in GitHub, dividing up the work, and sending each other pull requests (PRs). That’s how you’ll be working if you get a corporate job.

Get to know your editor. Most have extensions that will make your life much easier. Once you find one of these extensions and start using it, you will feel like all your prior programming was done with a stone hammer.

8. Know how to use Google or whatever search engine you use

I paste error messages directly into the Google search bar and often get a dozen answers. Usually, you’re not the first person to ever run across an error message, so take advantage of everyone else's experience. Know what sites that appear in the search listing are going to give you the best answers. Sites associated with the software that’s giving you an error message are the first pick, StackOverflow would be the second choice. After a while, you get to know the bloggers out there who are more reliable for gleaning answers from. Sometimes, to get the best results you have to phrase your question just right. So if your Express.js program isn’t working, typing “Express is not working” will probably give you a job listing at the local express printing shop.

9. Know you’re not alone

Sending out a tweet in all caps that your program isn’t working and you’re rage quitting may not seem like the most productive thing to do, but you’ll probably get a lot of sympathy from all the people out there that are going through the same thing. It’s ok to scream into the void, it doesn’t cost you anything and will probably not annoy the neighbors like screaming aloud would. Find your group. Social media is filled with novice programmers from whom you will likely find encouragement. There are also seasoned programmers like me that might help if we have the time, especially if you ask a well thought out question.

10. Have an idea of what you want to do

If you’re artistic, you will probably find frontend programming more appealing. I took one semester of print-shop in high school, and, believe it or not, it actually helps me unravel a lot of CSS nomenclature. If you’re more about the data, back-end programming might suit you better. If you’re really good at math, look into data science. But still, diversify. You’ll be a lot better at any of these things if you try your hand at one of the other areas of specialization. Even if it’s just enough to reinforce that you want to stick with your main specialization.

11. Unpopular opinion: Don’t worry too much about your programming style.

DRY and SOLID are for people that are developing frameworks, not people putting together basic web applications. Go ahead and repeat yourself, it’s good practice. If your application becomes impossible to extend because it’s complete spaghetti, don’t refactor it, rewrite it. Again, good practice. Each time you rewrite it, you’ll do it better. You may have a few hundred projects on GitHub, but I’m sure GitHub doesn’t mind. Eventually, you can delete the old ones that are too embarrassing to keep around.

Another unpopular opinion: Don’t worry about writing tests. The proof of the pudding is in the eating, if your program works, great, if it doesn’t it’s often easier to figure out what’s wrong with it without writing some elaborate tests and pulling in another test framework, and then debugging why your tests don’t work. You’ve basically more than doubled the amount of code you’ve written. I can hear people’s heads exploding while reading this, but sometimes your head has to explode for you to learn. Again, tests are for people developing libraries and frameworks. If your web application becomes so complicated it needs tests, perhaps you’re not using enough pre-built libraries.

12. Don’t force yourself

Take a break if things become too hard. If starting a new programming project doesn’t seem exciting, give it some more time. If it never seems exciting, maybe programming isn’t for you. Programming is a great way to earn money if you love to program, but I can’t imagine doing it if I didn’t love it. Too much frustration, everything changes every other day. You spend your entire life learning. It’s a hard dollar to earn if your heart isn’t in it.

13. Celebrate every success no matter how small

Always try to end your programming session on a success. Bask in it! Successes will fill your brain with happy chemicals and eventually you’ll be addicted to developing. If you have a success, but you want to keep going, at least have a coffee break, or get up and walk around. Brag about it on social media! Post a screenshot. Never let a success go unrewarded.

Parting thoughts

I’m glad to see so many people learning to code. I’m especially glad to see so many women, BIPOC, and other marginalized people learning to code. I see coding as being about what you can do, not what you are, and if you can perform you can go far. There still are barriers and biases that will stand in the way, but if you’re a good coder, you can brute-force your way through those and lead the way for others.

For some concrete steps you can take, you can read my article Application Programming for Absolute Beginners.