How to improve your programming skills

Company name: Wow

Company url: http://wowwriting.com

Job location: Detroit

Job description:

Programming is a skill that, like any other, is perfected by practice, so the easy answer to the question of how to get better at programming is "practice." Still, I will do my essay on possible ways of improving your programming skills to help you find a suitable vector in your practice.

The questions that arise when we say that to get better at programming, you have to practice are endless: what to practice? On what difficulty? Where do I find exercises? In what language should I do it? How do I know I'm doing it right? 
So telling someone that they need to practice to improve is an empty answer. On the other hand, it should be noted that as in any skill, there is no magic recipe, nor a series of steps that will take you from starting to finishing point in a certain amount of time. There are no such paths.

So what do I do?
If I take their courses, they assure me that I will be able to reach X level in X amount of time.

It is a doubt that we constantly receive, especially for those who are looking to purchase the premium plan. This doubt is legitimate because, naturally, you expect your investment to pay off; the issue with this doubt is that, as I mentioned before, your level often depends on the amount of time you have dedicated to perfecting it. However, there must be an effort to nurture that sense of practice and help you dramatically cut down the time in which you can become an expert.

This is where projects are a crucial part; this is something we fell in love with, the idea of project-driven courses.

Programming by projects is one of the best ideas you can have because, at the end of the day, programming is not about memorizing syntax, knowing all the reserved words of a language, or whether using X technology is better than another. Programming is about solving problems most efficiently using a computer. That's the essence of being a good programmer, being able to solve problems. The question is, where do I look for problems? The answer is, let the issues come to you.

Problems come to you in the form of needs. When you develop with a project in mind, the needs of the project become your problems:

If we could measure the soil moisture every 20 seconds, we could send a notification when it is low and activate the irrigation system.

From a problem like the one above, you may find that you need to:

  • Know how to measure soil moisture.
  • Know how to connect the sensor with a programming language.
  • Read the data every certain period
  • Condition the sensor values
  • Send a call to something that activates the system.
There you have it, five problems ready to practice your skills as a developer.

So, defining the project is enough?
Theoretically, yes, but practically I would like to give you some recommendations on how to choose projects:

  1. Challenging but not impossible. Measure your skills, do some research beforehand to know that what you want to create is within reach of what you know. If you go too far, you can get discouraged by the lack of results. Also important, even more important, is not to always take on small projects or projects in your comfort zone. If they are easy, you will not grow; if you do the same, you will become obsolete. Change the technologies, the landscape, the way of solving things, and the challenge is the keyword.
  2. Finish projects, don't leave them half-finished. Release them, let people use them, put them in the hands of the users. Invest in your PlayStore or AppleStore license, buy cheap hosting, or whatever it takes. There is a massive difference between a programmer who knows how to deliver the product to the users and the one who does not. When the product is being used "in the real world," we say it is in production. Being in production is a different world with new challenges, new bugs, and new ways to fix them.
  3. Do something you like and are interested in. Personal projects should help you improve, but they can also keep you motivated and merge your desire to learn programming with something that interests you. In the best-case scenario, your product will be widely used, and you will be able to make a living from it, but it is better if it is something you enjoy doing.
  4. Use technologies at the limit. In big projects, it is challenging to use test releases or betas. We always go for the robust, what is already proven, to not fail in production. When you are starting something new, install the latest. If you're going to use PHP, install PHP 7. If it's Rails, install Rails 5, and so on, go for the latest.
How do I know I'm doing it right?
This is the most complicated part, especially if you are working alone or everyone in the team has the same level or experience. It's essential not just to do things, but to want to do them well, to be a perfectionist, not just with the product but also with the code you make and the solutions you propose. Here are some tips:

  • Try to rewrite old code after a certain time (3-4 months). We say we refactor the code when we improve it without changing its functionality.
  • Improving code means that we make it more dynamic, less repetitive, and more organized.
  • Learn to write tests. There are unit tests, functional tests, interaction tests, and more. Learn how to test your code. How does this help me? Your code is easy to test when it's well done; it's hard to test when it's done poorly.
  • Upload your code to Github or Bitbucket, i.e., make it public. There's no guarantee that nobody decides to steal it. On the other hand, making it public will help you get people to review it and give you advice. Note: You must take security measures when making your code public. Never leave passwords or sensitive data in the public repository.
  • Read other people's code, especially code from large projects, popular libraries, etc. That will give you an overview of how to do it the best way.
Read more:

Apply information: