Programming learning tips
Learning computer programming is not exactly a simple task. In general, it takes a lot of effort for a student to be able to learn to program satisfactorily over a period of time that can vary from several months to several years.
A Systems Developer, ideally, needs to have diverse knowledge, such as:
- Programming languages
- Systems analysis and modeling
- Software testing
- Work with a variety of tools, such as specialized IDEs and compilers
- Know several libraries and frameworks
- Knowing how to work in teams – “teams”
- Being self-taught (yes, you will have to learn a lot on your own)
- Know database theory and physical implementation
- Project management
Not much? If just learning a language was hard work, imagine learning it all!
But let’s take it easy. Nobody said that it is necessary to learn all this at once and in a few days. In fact, your learning in this area of computing will be continuous, and endless. You will study and learn while working in this area. Now, of course, the sooner you learn the subjects mentioned, the better it will be for your career. And how to do this, in practice?
In this post my idea is to illustrate some techniques that students in the area of systems development can use to improve their learning in programming and related disciplines, from a practical point of view. I don’t mean to say things like “you have to study hard”, or “don’t give up, you get there”. This is, of course, extremely important, but I have already talked about this aspect of effort and learning difficulties in this video by Bóson Treinamentos .
Programming Study Techniques
In order to learn more efficiently and improve your programming knowledge, I suggest the following techniques and tips, according to my own experience:
- Cod at least two hours a day (two to four is ideal) and rest one day a week. Less than two hours is insufficient to make it possible to study a subject and practice it satisfactorily. But be careful: studying for a long time in a row (for example, 10 hours in a row) is also not very effective, and can lead to an extremely damaging breakdown in the medium term. Be sparse and respect your own limits. And be sure to rest one day a week – take advantage of that day to do other activities outside of the program, such as going for a walk, going to the movies, playing football, going to the beach or something fun and healthy.
- Write A LOT of code. It doesn’t matter if your code is good, bad, ugly or elegant, what you need to do in this step (as a beginner) is to write as much code as you can. It doesn’t matter if you’re going to write simple algorithms, just write, test and debug until it’s trivial for you to code.
- Be calm when debugging problems that appear in your code (they will appear for sure!) And use the resources available on the Internet to help resolve them. Getting unnerved by a code that doesn’t work as it should is the best way to not learn to program.
- When in doubt, and can’t solve a problem yourself, don’t panic: seek help. Whether in forums, study groups, at school or with your colleagues, try to find out what is wrong with your code, and after discovering the problem, try to fix it without copying and pasting any code – rewrite your algorithm applying the solution found – see next tip.
- Don’t “copy and paste” code – if you do, you’ll never really learn to write your own algorithms. Suppose you found a solution to a problem on an Internet site, such as a forum, or Stack Overflow. Read the solution found, try to understand the reasoning behind who wrote it, ask questions with people, and then try to write your own solution, without simply reusing the found one.
- Take regular breaks every 40 minutes to 1 hour for coffee, juice, relax, etc., for a maximum of 5 to 10 minutes.
- While encoding, stay away from your smartphone, close Facebook and don’t talk to anyone via Whatsapp. Exit social media (except the developer forums!). Focus on what you are doing at the moment.
- Write programs to see them work. It doesn’t matter if the code you have written is of the best quality – in this step, what you need is to write programs that WORK, so that you will know that you are really learning to write algorithms and will see your work bear fruit, which is very motivating.
- When you can write programs that work, learn to refactor them – rewrite your code to make it cleaner, more organized and more efficient. This way, in a short time you will be writing elegant and functional code from the beginning of a project.
- Use and abuse of Comments in your code. Do yourself and the colleagues who will work with you this favor. This way, you don’t run the risk of not remembering what an algorithm or code snippet does six months after you have written it – and you save yourself the trouble of analyzing source code unnecessarily for you and your team members development – or whoever comes after.
- Learn a little about related areas that we mentioned earlier, such as Project Management, Tests, Computer Hardware, etc., as this knowledge complements the study of programming and broadens your vision for understanding and solving problems. And, above all, learn to ANALYZE problems before trying to write code to solve them. If you do not understand exactly the nature of a problem and its ramifications and dependencies, how do you intend to solve it?
- Master an IDE or code editor. Preferably, one that does not have too many resources – but it is also not necessary to use only the notepad or the vi editor. Something like the Notepad++ or Sublime Text editors are excellent at this stage. Focus on the code, and try to avoid features like auto-completion at this stage of your learning. After you have learned to use an IDE, it is not a bad idea to switch to another IDE and learn to use it as well.
- Always record what you are studying – and learning. Write in your own words what you have studied and learned in a notebook, for example, as this helps to keep concepts in mind and to remember them in the long run. Yes, in a notebook, physical media, outside the computer.
- Try to teach someone who knows less than you. This is an excellent way to learn. In fact, it is one of Richard Feynman’s famous techniques for learning “anything” – which we have already covered in the video on Richard Feynman’s Study Techniques .
- Video Tutorials – YouTube, Udemy, CBT Nuggets, etc .; It is very common to watch courses and video tutorials nowadays – we ourselves have more than 1200 videos published on the Bóson Treinamentos YouTube channel ! However, it is necessary to be very careful with this type of study. When we watch a video on a certain subject, the illusion of having learned the topic explained is common. However, watching a video is a passive activity – you need to train what has been seen to ensure learning of the subject. Seeing someone talking, for example, about repetition structures in Python does not mean that you have learned the subject – you need to open the IDE and exercise yourself by writing and testing code and algorithms, and creating different applications.
- Code by hand. Writing algorithms using paper and a pen allows you to increase your proficiency and is a very effective method for learning to program — in fact, for learning anything. Writing by hand requires care, precision and attention, which in general leads to a greater absorption of the studied content. That’s how we studied a few years ago, when we didn’t always have access to computers at home. In addition, many job interviews include writing tests of algorithms – handwritten.
- Read books on systems development theory and computer programming. Not books on how to use languages, but how the software development process works. Learning the philosophy behind the technologies is really very important for you to acquire skill and proficiency.
- If your difficulty is in understanding programming logic, do not hesitate to use a visual language, even if made for children. Scratch is a great language for that purpose. Some people find it easier to learn visually, and if that’s the case, go ahead.
And always remember: Never compare yourself with others. Your goal is to learn to program well, not to measure how much others know. It is not a dispute. If your classmate or co-worker knows much more about programming than you do, or has a much easier time learning, it doesn’t matter. What matters is how much you are learning. In fact, having colleagues around who know a lot more than we do is great – being surrounded by people with great knowledge is a great way to grow professionally. Look at them as an inspiration, and as an opportunity to learn to work as a team.
And don’t be in a hurry. The domain of knowledge about software development will come in its due course.
I hope these Programming Learning tips may be useful and help students improve their performance when studying and working.