How I Would Learn To Code (If I Could StartĀ Over)

-

to varied sources, the common salary for Coding jobs is ~£47.5k within the UK, which is ~35% higher than the median salary of about £35k.

So, coding is a really precious skill that can earn you extra money, not to say it’s really fun.

I actually have been coding professionally now for 4 years, working as a knowledge scientist and machine learning engineer and on this post, I’ll explain how I’d learn to code if I needed to do all of it all over again.

My journey

I still remember the time I wrote my first little bit of code.
It was 9am on the primary day of my physics undergrad, and we were in the pc lab.

The professor explained that computation is an integral part of recent physics because it allows us to run large-scale simulations of every little thing from subatomic particle collisions to the movement of galaxies.

And the best way we began this process was by going through a textbook to learn Fortran.

My first programming language was , specifically Fortran 90.
I learned DO loops before FOR loops. I’m definitely a rarity on this case.

In that first lab session, I remember writing ā€œHello Worldā€ as is the same old rite of passage and considering, ā€œBig woop.ā€

That is the way you write ā€œHello Worldā€ in Fortran in case you have an interest.Ā 

program hello
print *, 'Hello World!'
end program hello

I actually really struggled to code in Fortran and didn’t do this well on tests we had, which put me off coding.

I still have some old coding projects in Fortran on my GitHub which you could try.

Looking back, the educational curve to coding is sort of steep, nevertheless it really does compound, and eventually, it would just click.

I didn’t realise this on the time and actively avoided programming modules in my physics degree, which I regret in hindsight as my progress would have been much quicker.

During my third yr, I needed to do a research placement as a part of my master’s. The corporate I selected to work for/with used a graphical programming language called LabVIEW to run and manage their experiments.

LabVIEW relies on something called ā€œGā€ and taught me to think about programming in a different way than script-based.

Nonetheless, I haven’t used it since and doubtless never will, nevertheless it was cool to learn then.

I did benefit from the research yr somewhat, however the pace at which research moves, at the very least in physics, is painfully slow. Nothing just like the ā€œheydayā€ from the early twentieth century I envisioned.

At some point after work a video was really helpful to me on my YouTube home page.

For those of you unaware, this was a documentary about DeepMind’s AI AlphaGo that beat the most effective GO player on this planet. Most individuals thought that an AI could never be good at GO.

From the video, I began to know how AI worked and study neural networks, reinforcement learning, and deep learning.
I discovered all of it so interesting, just like physics research within the early twentieth century.

Ultimately, that is after I began studying for a profession in Data Science and machine learning, where I needed to show myself Python and SQL.

That is where I so-called ā€œfell in loveā€ with coding.
I saw its real potential in actually solving problems, however the foremost thing was that I had a motivated reason to learn. I used to be studying to interrupt right into a profession I desired to be in, which really drove me.

I then became a knowledge scientist for 3 years and am now a Machine Learning engineer. During this time, I worked extensively with Python and SQL.

Until a number of months ago, those were the one programming languages I knew. I did learn other tools, corresponding to bash/z-shell, AWS, docker, data bricks, snowflake, etc. but not every other ā€œproperā€ programming languages.

In my spare time, I dabbled a bit with C a few years ago, but I actually have forgotten virtually all of it now. I actually have some basic scripts on my GitHub when you have an interest.

Nonetheless, in my recent role that I began a few months ago, I will likely be using Rust and GO, which I’m very much looking forward to learning.

Select aĀ language

I all the time recommend starting with a single language.

In response to TestGorilla, there are over 8,000 programming languages, so how do you decide one?

Well, I’d argue that a lot of these are useless for many jobs and have probably been developed as pet projects or for really area of interest cases.

You might select your first language based on popularity. The Stack Overflow 2024 survey has great information on this. The most well-liked languages are JavaScript, Python, SQL, and Java.

Nonetheless, the best way I like to recommend you select your first language needs to be based on what you should do or work as.

  • Front-end webā€Šā€”ā€ŠJavaScript, HTML, CSS
  • Back-end webā€Šā€”ā€ŠJava, C#, Python, PHP or GO
  • iOS/macOS appsā€Šā€”ā€ŠSwift
  • Andriod appsā€Šā€”ā€ŠKotlin or Java
  • Gamesā€Šā€”ā€ŠC++ or C
  • Embedded Systemsā€Šā€”ā€ŠC or C++
  • Data science/machine learning / AIā€Šā€”ā€ŠPython and SQL

As I desired to work within the AI/ML space, I focused my energy mainly on Python and a few on SQL. It was probably a 90% / 10% split as SQL is smaller and easier to learn.

To at the present time, I still only know Python and SQL to a ā€œskilledā€ standard, but that’s high quality, as just about the entire machine-learning community requires these languages.

This shows that you simply don’t have to know many languages; I actually have progressed quite far in my profession, only knowing two to a major depth. In fact, it will vary by sector, however the foremost point still stands.

So, pick a field you should enter and select probably the most in-demand and relevant language in that field.

Learn the bareĀ minimum

The largest mistake I see beginners make is getting stuck in ā€œtutorial hell.ā€

That is where you’re taking course after course but never branch out on your individual.

I like to recommend taking a maximum of two courses on a languageā€Šā€”ā€Šliterally any intro course would doā€Šā€”ā€Šafter which beginning to construct immediately.

And I literally mean, construct your individual projects and experience the struggle because that’s where learning is completed.

You won’t know find out how to write functions until you do it yourself, you won’t know find out how to create classes until you do it yourself, and also you literally won’t understand loops until you implement them yourself.

So, learn the bare minimum and immediately start experimenting; I promise it would at the very least 2x your learning curve.

You almost certainly have heard this recommendation quite a bit, but in point of fact it’s that straightforward.Ā 

I all the time say that almost all things in life are easy but hard to do, especially in programming.

Avoid trends

After I say avoid trends, I don’t mean to not deal with areas which might be doing well or in demand available in the market.

What I’m saying is that once you pick a certain language or specialism, keep on with it.

Programming languages all share similar concepts and patterns, so once you learn one, you not directly improve your ability to select up one other later.

Don’t develop ā€œshiny object syndromeā€ and chase the newest technologies; it’s a game that you’re going to unfortunately lose.

There have been so many ā€œdistractingā€ technologies, corresponding to blockchain, Web3, AI, the list goes on.

As a substitute, deal with the basics:

  • Data types
  • Design patterns
  • Object-oriented programming
  • Data structures and algorithms
  • Problem-solving skills

These topics transcend individual programming languages and are significantly better to master than the newest Javascript framework!

It’s significantly better to have a robust understanding of 1 area than attempt to learn every little thing. Not only is that this more manageable, but it is usually higher in your long-term profession.

As I said earlier, I actually have progressed quite well in my profession by only knowing Python and SQL, as I learned the required technologies for the sector and didn’t get distracted.

I can’t stress how much leverage you’ll have in your profession when you document your learning publicly.

Document yourĀ learning

I don’t know why more people don’t do that. Sharing what I actually have learned online has been the largest game changer for my profession.

Literally committing your code on GitHub is enough, but I actually recommend posting on LinkedIn or X, and ideally, you need to create blog posts to show you how to cement your understanding and showcase you knowledge to employers.

After I interview candidates, in the event that they have some kind of online presence showing their learnings, that’s immediately a tick in my box and an additional edge over other applicants.

It shows enthusiasm and keenness, not to say increasing your surface area of serendipity.Ā 

I do know many persons are scared to do that, but you’re affected by the highlight effect. Wikipedia defines this as:

The highlight effect is the psychological phenomenon by which individuals are likely to imagine they’re being noticed greater than they reallyĀ are.

Nobody literally cares when you post online or take into consideration you as much as 1% as you think that.Ā 

So, start posting.

What aboutĀ AI?

I could spend hours discussing why AI will not be an instantaneous risk for anyone who desires to work within the coding occupation.

You need to embrace AI as a part of your toolkit, but that’s so far as it would go, and it would definitely not replace programmers in 5 years.

Unless an AGI breakthrough suddenly occurs in the following decade, which is very unlikely.

I personally doubt the reply to AGI is the cross-entropy loss function, which is what’s utilized in most LLMs nowadays.

It has been shown time and time again that these AI models lack strong mathematical reasoning abilities, which is one of the vital fundamental skills to being an excellent coder.

Even the so-called ā€œsoftware engineer killerā€ Devin is not pretty much as good because the creators initially marketed it.Ā 

Most firms are simply attempting to boost their investment by hyping AI, and their results are sometimes over-exaggerated with controversial benchmark testing.

After I was constructing an internet site, ChatGPT even struggled with easy HTML and CSS, which you’ll argue is its bread and butter!

Overall, don’t worry about AI if you should work as a coder; there may be much, much larger fish to fry before we cross that bridge!

One other thing!

Join my free newsletter, , where I share weekly suggestions, insights, and advice from my experience as a practicing data scientist. Plus, as a subscriber, you’ll get my FREE Data Science Resume Template!

Connect withĀ me

ASK ANA

What are your thoughts on this topic?
Let us know in the comments below.

0 0 votes
Article Rating
guest
0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments

Share this article

Recent posts

0
Would love your thoughts, please comment.x
()
x