Managing the Unexpected: A Guide for New Self-Taught Software Developers
Most of the software engineers you will meet or learn from throughout your career in software engineering are self-taught. Most of them shared the same issues you are experiencing or will experience on your journey to becoming a software developer.
Most developers in the world are self-taught - see for yourself.
As you advance in the field of computer programming, it's important to be aware of the potential for burnout and to actively manage your well-being. This will be crucial to your ability to successfully complete your Bootcamp, course, or self-study through tutorial videos.
In my experience at work and when learning a new technology, it is more productive for me to work in bursts. It means I am laser-focused on the task at hand for at least 2–3 hours, then take a break and repeat the process. You can adopt the same style or whatever works for you to get into deep work.
Ensure you have enough rest and engage in any activity that helps you relax. It could be a movie, reading a book, TikTok video, etc. Just leave your working space or computer and relax your mind.
Here are some of the problems you will face on this journey:
Isolation
Computer programming eats the brain (that's a joke). It takes time to understand some concepts and to master the craftsmanship of software engineering. The process of acquiring software engineering knowledge and skills is mostly lonely. You are likely to spend more time on your computer than you do anywhere else. Accept that and manage your time, so other aspects of your life don't suffer.
Back Pain
Yes, you will experience back pain even if you use an ergonomic chair. Most beginners don't have the luxury of a good workspace and have to make do with whatever they have, including me when I started. I would recommend you search online for back stretching exercises you can do. It is a sedentary life here as a programmer, so it is important to stay fit.
Poor Eyesight
领英推荐
Yes, with those inundating hours on the computer, you are constantly blasting your eyes with blue rays from your computer and mobile phone. I never understood this until my eyes were too stressed that I began having insomnia and twitching eyelids. The doctor's diagnosis was stress and I needed to get anti-glare glasses. Get the anti-glare glasses and remember to sleep well (I am working on having at least 6 hours per day myself).
Slow Computer
We've all been there and survived it. You don't need a MacBook to learn software development, with mobile app development as an exception. What you require is a computer with at least 4?GB RAM, 5th and above generation microprocessors and 256?GB HDD/SSD storage space. The computer I started with could boil water and took about 5 mins to run a webpack build. It was a mess, but that mess got me to where I am today. If you are skilled enough, start applying for jobs. If you get a job, your employer will most likely get you a better laptop to work with.
No More Motivation
Software development is hard. That is something you have to accept and it will help you be steadfast in your dream of becoming a software developer. You will have bugs, your build will break and you will spend hours looking for the solution on the internet, the framework's learning curve can be steep and discouraging. If you can, cultivate an internal mechanism to encourage yourself to face the challenges therein, or find an online community that can help you understand your problem or solve it. Software development is rewarding in itself. Every time you resolve an issue, you get a dopamine boost! ??
Sites to visit when you are debugging your application:
For example, I spent about 5 hours sourcing for cloud PostgreSQL DB to host my application's data and deploy a Spring Boot app to Google Cloud. It did take my time, but I was damn happy for the rest of the day and wouldn't trade that feeling of accomplishment.
Lack of Focus
Please, don't start with backend development today and switch to a frontend framework the next week. It is disastrous and diminishes your effort at being good in any aspect of software development. You can only move about frameworks and languages when you have at least mastered one language and worked with it for 2 – 3 years. Pick a learning path and follow through.
Above all, be consistent in your practice and always remember there's room for improvement.
Don't forget to apply for jobs—if you don't apply, who will?