I've started to develop software at the age of 12. That was 21 years ago.
Here is some advice I want to give to any aspiring software developer trying to learn the craft and getting into the industry.
A thread. ↓
1. Spend more time on the why
Ask yourself honestly why you want to learn to develop software.
It is okay to go for the money. In many countries, software developers earn top salaries.
But you should always be aware of your own motives.
If you constantly tell yourself you do it because you love it, while silently thinking that it's for the money that helps you support your family, you could actually end with burnout or depression.
The internal struggle between you pretending to love it and your experience of not liking it that much can really hurt your mental health.
If you are aware of why you do it, it'll boost your mental strength and morale.
Even money is a good honest motive.
2. Do more research on what different fields of software development there are
If you listen to Tech Twitter, you might get the impression that there are only two prominent fields in software development:
1. Web development 2. Machine learning
But actually, there is:
1. Web development 2. Machine learning 3. Cybersecurity 4. Data science 5. DevOps 6. SRE 7. Backend development 8. Embedded development 9. and more 10. and more 11. and more 12. and more...
and much, much more...
And all these fields come in a multitude of nuances.
One backend dev position is not like the other backend dev position. Some do not only create REST APIs but deal with messaging and multiple databases.
Not all machine learning engineers develop models. Some work a lot on deploying them and creating pipelines to retrain them.
Some DevOps are more like SREs. Some are more like administrators.
This can go on and on and on.
Use this as your first real chance to get good at googling.
Check the internet and see how many different fields there are in software development, and try to get an idea of what you would do in each.
Perhaps something you read sounds so interesting that you get curious.
3. Dive deeper into a few fields that interest you
If you found one or more fields that you find interesting, dive deeper into them.
Get a good idea of what you need to be successful in them.
You will most likely also find a few roadmaps to become X or Y.
Try to get an idea of whether following such a roadmap seems interesting for you.
If you spot a lot of stuff on it that doesn't sound too exciting, you might want to start with something different.
Losing motivation right at the beginning could lead to a lost opportunity.
Many developers only later fall in love with development when they finally grasp the whole and not only a part of it.
4. Think in milestones
While you might have the goal to learn to code, it is not easy to reach.
It might take a long time until you are really comfortable coding.
Such a long time could make you lose motivation.
If you create smaller and easier-to-reach milestones for yourself, you achieve something more frequently.
Set yourself small goals for each day or week.
This is what you want to achieve in that specific timeframe.
After each milestone, plan for your next.
Even if you decide that you won't continue with the path you are currently on, you will still have achieved a few milestones until then.
It's no shame to change directions and move on.
5. Learn the fundamentals
Before you jump right into your first framework, learn about some of the most important fundamentals:
- How a computer works
- What a programming language actually is and does
- Logic
- Math (basics)
- Algorithms
- Data Structures
- Networking / I/O
You will need all of these at some point.
For some of us, this is the most important stuff. For others, it's boring as hell.
There is, however, no excuse to skipping these. As a developer, you are expected to know your craft.
It doesn't make sense to jump right into Django, Express, or React if you don't know how to solve any problem with an algorithm yet.
Yes, you can learn by doing, but a basic idea of conditions, loops, and such definitely helps, for example.
6. Realize that software development is more than programming
Programming is only a fraction of a developer's job.
It also includes:
- Thinking a lot
- Testing software
- Designing solutions
- Documenting features
- And more
You might love to write code, but when you finally want to enter the industry, you will most likely get confronted with the reality of this job.
Companies expect you to not only know how to program. They ask for the full package.
If you haven't also spent a lot of your time developing all the other skills necessary, you will probably have a hard time finding a job.
You train some of them while actually writing software, but working on them independently doesn't hurt at all.
7. Thread end
That's it for this thread. 💛
I hope you found something useful in it for you! 🙏🏼
If you enjoyed this read, leave a like, retweet the first tweet, and feel free to follow me (@oliverjumpertz) for more content like this.
• • •
Missing some Tweet in this thread? You can try to
force a refresh
The trick to serving multiple social media platforms with content is smart - not hard - work.
1. Choose one main platform 2. Create your content for this platform 3. Derive content for other platforms from it 4. Additionally, derive micro-content
A thread. ↓
1. The approach
You want to minimize the work you put into social media.
Your main job is probably not the one of a content creator, but you are something different.
You are a software developer, a marketer, an analyst, or whatever else.
1/16
Most of us have families, hobbies, friends, and what else we also want to take care of.
Doing social media whenever you are not working is definitely not your main goal, I guess, and that's fine.
Thus, minimizing the work while getting a maximum effect is essential.