Top 17 Tips for New Web Developers

Sometimes you know that you have to improve but you don’t know what to improve.
How can you learn efficiently if you don’t know what you should be learning? Hopefully the following tips should help you realize what you’re lacking. They are language agnostic and came from searching on the internet, sitting down with a Senior Developer and my little experience with Python during the last 2 years. Let’s dive in!

1. Syntax matters

Programs should be written for people to read, and only incidentally for machines to execute.

– “Structure and Interpretation of Computer Programs” by Abelson and Sussman

You may start working alone on some projects but pretty soon you will be working with other developers who have to read and understand your code. Avoid wasting their time, write code that has great readability and do yourself some good! Most likely you will come back to your own code at some point in the future so you should be able to quickly dive back into it.

No matter what language you’re using, you must respect its coding style.
For instance if you’re using Python, follow its coding style called PEP8. For Javascript, here’s a Google JavaScript Style Guide and here’s another from AirBnb. Here are guidelines for CSS.

More specifically here are a few important points when writing code:

  • Indentation is important, doubly so with a language like Python where it is interpreted and defines scope. Plus, you should format your code so that you never ever have to scroll vertically when reading it.
  • Comments. There’s a debate around commenting. The short answer is: you don’t want to write too much nor too little. You want your code to be so beautiful, it explains itself but when it doesn’t, that’s when commenting is useful. So comment when it’s necessary. Here’s a more in-depth explanation by Jeff Atwood.
  • Naming. There are different standards for the different languages out there and it always depends on what you’re naming. a_function_in_python? aVariableInJava? A CONSTANT? Rules differ.

Spend some time picking good names because when you’ll come back on your code it will help you quickly understand what your function does or what your variables represent.

You might not consider naming to be of prime importance but it is far easier to start off with good practices than establishing bad habits that you’ll have to correct further down the line.
Clean Code is an excellent read about syntax and code formatting.

2. Be modular

DON’T WRITE SPAGHETTI CODE.
There’s a reason why people write functions, methods, packages, modules, libraries… you name it. It’s important to break things into components. That way, you will be able to reuse them elsewhere. Additionally, it’ll avoid you writing the same thing multiple times and having one big unstructured mess full of inter-dependencies that is impossible to debug.
Even if you’re writing a small function and this function does 2 unrelated things, you should break it into 2 different functions.
Writing good code isn’t only about pleasing the readers (well, not only). So think twice – following the death of a woman who lost throttle control of her 2005 Camry on an Oklahoma interstate, it was found that the accident was due to… you guessed it… bad spaghetti code.

3. Don’t jump from one language to the next

A common mistake by novice code learners, jumping from one language (or framework) to the other is an easy trap to fall into. Why? Because it feels great to start picking up something completely new to you! At the beginning you’ll get the feeling that you’re learning a lot quickly but then as the learning curve gets steeper your learning rate will diminish. Now instead of sticking to it, grabbing the bull by the horns and confronting the most difficult parts, there’s a natural tendency to switch over and learn something else.

Alright, constant learners, I feel you. But having superficial knowledge of 16 things will get you nowhere. Your total programming knowledge shouldn’t be a 10-inch-deep ocean.
Instead, try to build up expertise in a few languages/areas and keep yourself informed about other skills at a higher-level, that way you’ll be well on your way to having T-shaped skills.

4. If you don’t use a version control system, stop here.

“Version control is the management of changes to documents, computer programs, large web sites, and other collections of information. Each revision is associated with a timestamp and the person making the change. Revisions can be compared, restored, and with some types of files, merged.”

That’s the formal definition. Basically, version control allows you to keep track of file changes, allowing you to see what was modified, when, by who and enable you to revert to previous versions. In addition, it makes managing the contributions of different people working on the same project in parallel, so much easier. It’s pretty awesome and will save your life when you you’ll need to revert. Unlike writing an essay where adding a sentence doesn’t have much impact on the other paragraphs, adding even a character to a script can sometimes blow the whole thing up.

Even if you start by working alone on projects, you must learn Git and take the habit of committing and pushing code to a repository. The two most used platforms to host your repositories are GitHub and Bitbucket.

As you’ll learn more about programming you’ll understand Git better. Git is powerful but it’s not magic. Git is made for solving problems that arise from coding but most of the time your bugs don’t come from git. When you will see 0 conflicts and your code doesn’t work as expected, don’t blame git, blame your code.

5. Organize your learning

Web development is a broad field and you can quickly find yourself drowning in extremely specialized subtopics of web development. It’s fair to say that the Web is full of resources that range from very specific (how to deploy X with Y and Z) to more broad (like the article you’re reading right now!). We identified more than 40 online course providers that can help you learn how to code… not to mention all the videos, articles and podcasts we’ve compiled.
As you learn, it is critical that you keep track of the resources you’re using for a couple of reasons. First, you will probably want to come back to them at some point in the future. Imagine you find a web page on how to solve a problem you’ve just encountered. By saving it, you’ll save time searching and googling the next time you’ll face it again.

It’s also nice to have everything in one place in order to track your progress, as well as making things easier if you want to share what you’ve learned to help out your peers.
Careerscore’s community is a great place to save resources with collections. Here’s an example of an Android Developer’s collection.

6. “Real” applications from “real” people

Software engineering is not about writing code, it’s about solving problems. The best way to learn how to do that is to observe the work of people who built software, complex applications that we use every day, sometimes unknowingly, and which make the world run.
With the advance of open-source, it’s great to now be able to browse and read code from other people. The best place for that is GitHub. You can check out some great GitHub repositories here.
Reading other people’s code is great and it can be a good way to learn. Nevertheless you’re limited by your own understanding of it. Plus, most of what’s on GitHub are building blocks: tools, libraries, frameworks… and samples. To get a full picture and learn how all of this comes together you should talk to software engineers directly, but beware because at the beginning it’ll feel like drinking from a firehose.

How to get in touch with these senior programmers is a different topic. Meetups, Reddit and Slack communities are great places to start.

7. Learn how to debug properly

Programming is not for everybody.

It can get really, really frustrating when things are not working as you expect them to. In those situations, you really have to show patience and perseverance.

When you begin, you’ll spend a lot of time trying to figure out why your code doesn’t work and do a lot of debugging. After all, errare humanum est. That’s why knowing how to debug properly is a critical skill in programming. Using print statements can be a quick and easy solution. However, you should remember that each language and framework has its own logging mechanism. You can find many techniques, approaches, methods and tools here and there. The most common way to go about debugging is to start from the faulty line and rollback from there, questioning all your assumptions. Often time tracebacks are enough to see what’s wrong.

8. Master your tools

If you’re a Chrome user did you know that you can reopen the tab you accidentally closed with Ctrl+Shift+T?

The point is, know your tools well, it will save you time. Also, know your tools’ tools… and features. Know keyboard shortcuts on whatever IDE you’re using so that you can quickly delete a line or comment a paragraph for example. Check out these cheat sheets for Notepad ++, Visual Studio and Sublime.

9. Computer Science: The basics

There’s absolutely no need to have a PhD in Music Theory to be a successful guitarist in a band (actually is there any famous guitarist who’s also a doctor?). However, if you want to get past the stage where you just know a few riffs learned from tabs, you’ll have to learn the basics of music theory!

Same goes for programming. You can write code from day 1 but in order to build complex full web applications you need to have some knowledge of computer science. You can spend months studying this and overdo that but the idea is to know just enough about a variety of topics such as data structures and databases, algorithms, trees, NP, you get the gist. Here are 2 awesome lists to help you with Computer Science:

https://github.com/jwasham/google-interview-university/blob/master/README.md

10. Read the specifications for {insert name here}

Learning HTML? Check this out: https://www.w3.org/TR/html5/
Learning OAuth? A simple Google search can tell you what you should be reading:

Learning about HTTP? Have a look here: https://tools.ietf.org/html/rfc2616

You get the idea… RFCs published by the IETF are considered references in web development along with the other specifications. It should be your bible if you’re serious about becoming a web developer.

11. Be sure to understand how HTTP and the web works.
Then play with APIs.

If you don’t know how the web works, read the Ultimate Beginner’s Guide by Learntocodewith.me. It covers all the basics from the difference between the web and the internet to the magic that happens behind the scenes to render web pages in a browser.

To see what’s happening when you browse and inspect HTTP requests, give Fiddler a try.

One of the most important pieces of advice for programmer wannabes is ABC.
Always Be Coding!
For instance, you can build cool apps quite fast by leveraging the power of APIs. Often well documented and easy to use, they are perfect when you start. By using web APIs you’ll learn how to make requests which is a key thing in web development. Here’s a list of some cool APIs to play with. Next step could be to build you own API. 😉

12. How to handle exception handling

Errors happen all the time. But how are you supposed to deal with them? Are you supposed to anticipate them all? Is it even possible? That’s probably one of the reason why software engineering is as much an art as it is a science. It’s all about trade offs.

You could spend hours trying to anticipate all the ways it could possibly go wrong and handle them gracefully with a “Try… Catch”. But at some point you’ll have to draw a line between spending time doing that and deciding to push… In the end it’s your decision, your responsibility and all about making calls based on case-by-case.

You might not see a need to write automated tests from the beginning but it’s actually important to understand how spending some time writing them can actually save you time in the long run. Several types of tests exist: Unit tests, integration tests… and you can learn all about them here.

13. There’s a minimum you should know about Unicode

And it’s all in this article! It’s a must-read, no excuses. Read it before you get your first “Unicode Error” and bang your head against your keyboard…

14. Try to avoid copying and pasting code that you don’t fully understand

You can use libraries, modules…etc but copy pasting someone else’s code into your code is something different. The moment you paste someone else’s code into yours, you become responsible for it! And since things will break one day, you have to be able to fix them, but you won’t be able to do it if you don’t fully understand your entire code in the first place…

In addition, you have to be consistent when coding and you might paste code from someone using a different philosophy than yours.

If you’re an absolute beginner, by definition you might need code that you don’t fully understand. And it’s fine if you use it, but as you progress you should get a better and better understanding of what you come across.

15. Security starts from day 1

Don’t think “oh I’ll add it later” because you won’t. Security starts from day 1.
What you have to implement in terms of security varies depending on the environment: for instance, SQL injection has been a famous threat for web apps but is irrelevant for a Windows app used offline. You should know the security protocols for the application you’re working on, regardless of the language and framework you’re using and be driven by requirements. But this means that you shouldn’t overbuild either: 2-factor authentication is simply not needed for every login.
And remember, there are 2 types of security victims: the ones that know they’ve been hacked and the ones that don’t…

16. Don’t underestimate maintenance

At first you might think “I ship it and I’m done!”. Nah. Software needs maintenance. As long as your web app is live it will need someone to take care of it. Be sure to take that into account.

17. Devops

Devops is like a world on its own, complex and somewhat obscure. Deploying an app can sometimes be as frustrating as developing it. The advice here is to use as many automated tools as possible. That will prevent you from forgetting a step. With Python for instance, Fabric comes handy when you need to automate your deployments.

Conclusion

Software engineering is about solving problems. It’s about making compromises.
SE includes Design, QA, Coding, Devops, Software Architecture, to name but a few.
These are different disciplines and coding is just one of them! They’re all equally valuable and need to work together.

As a beginner it’s critical to build, study, build, study and build some more. Ask for help when you’re stuck and don’t give up.
Don’t neglect your health. Exercise, get some sun.
But above all, don’t ship on a late Friday evening.

me
Raphael leads automation and engagement at Careerscore. He loves coding, IoT and AI.

Leave A Reply

Navigate