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
 

Keep Current with Oliver Jumpertz

Oliver Jumpertz Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

More from @oliverjumpertz

28 Jul
Data structures and algorithms are important for any software developer.

Sometimes loved, more often dreaded, but at the core of our craft.

Here is an introduction to the most important data structures, including learning resources.

A thread. ↓
1. Why you need to learn them

The reality is: You will and should never implement many data structures yourself on the job.

There are libraries for this purpose. Either a language's standard library or a commonly used library will provide them for you.

But is this all?
To decide which data structure you need in what case, you should know about them in the first place.

You need to know:

- Which exist
- What they are good for
- How they work
- Their runtime characteristics (time and space complexity)
- Their pros
- And cons
Read 32 tweets
26 Jul
Determining what salary to ask for is difficult.

You ask for too much, and you are shown the door.

If your demand is too low, you'll be underpaid for a long time.

Let's see how you can find the right amount to ask for.

A thread. ↓
1. Do your research

This is important. Often, you don't even have a good idea of which amount of money is actually fair to ask for.

You need to do research to find out what others in similar positions earn.

This usually gives you a basic idea of what range you can aim for.
You can start with salary calculators like PayScale or Salary but only use them as a rough indicator.

Their results are based on the voluntary input of data by people like you.

If someone provides a fake salary, it affects the outcome negatively.
Read 27 tweets
25 Jul
"What is your current salary?"

Have you ever encountered this question in an interview, or has a recruiter ever asked you this?

This is one of the most critical and morally questionable questions to ask a candidate, and here is how you deal with it.

A thread. ↓
1. Determining the value of work

Before we talk about the question and how to handle it, we need to talk about how the value of work is determined.

With this knowledge, you will understand the catch of this question and why answering honestly puts you at a disadvantage.

1/31
To completely cover a topic as deep as how to value work, it would definitely need a thread or even a book on its own.

We will thus go with a pretty simplified version that gives you at least a basic idea of how it works.

2/31
Read 32 tweets
24 Jul
I've recently covered a few common general interview questions and tips for interviews.

Here is a collection of those threads for anyone curious and about to interview soon.

They even occur in tech interviews, so software developers, take a read!

A thread. ↓
1. "Are there any questions left we can answer?"

A simple question but the right answer can be powerful leverage for your position with the company you are applying to.

2. "Where do you see yourself in five years?"

This common question can be difficult to answer.

But with the right preparation, you'll crush it!

Read 8 tweets
23 Jul
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.

2/16
Read 17 tweets
23 Jul
Having a personal brand can make the difference between a 5-figure and a 6-figure job.

It can also make the difference between landing a huge contract or not.

Here are five platforms you can build your personal brand on and what you can do there.

A thread. ↓
1. Twitter

Twitter is an awesome way to make yourself known.

Especially Tech Twitter is a great place to be.

So many humble and awesome people supporting each other and forming a great community.

1/22
Content is short-lived, and you have to provide value consistently, but even 2 or 3 tweets a day can already help you make a name.

280 characters per tweet are not too much, so it's pretty doable.

2/22
Read 23 tweets

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Too expensive? Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal Become our Patreon

Thank you for your support!

Follow Us on Twitter!

:(