{"id":2887,"date":"2025-04-05T07:03:49","date_gmt":"2025-04-05T07:03:49","guid":{"rendered":"https:\/\/mailitics.com\/index.php\/2025\/04\/05\/how-i-would-learn-to-code-if-i-could-start-over\/"},"modified":"2025-04-05T07:03:49","modified_gmt":"2025-04-05T07:03:49","slug":"how-i-would-learn-to-code-if-i-could-start-over","status":"publish","type":"post","link":"https:\/\/mailitics.com\/index.php\/2025\/04\/05\/how-i-would-learn-to-code-if-i-could-start-over\/","title":{"rendered":"How I Would Learn To Code (If I Could Start\u00a0Over)"},"content":{"rendered":"<p>    How I Would Learn To Code (If I Could Start\u00a0Over)<br \/>\n \t<BR><br \/>\n<BR><\/BR><br \/>\n    <!-- no image --><br \/>\n \t<BR><br \/>\n<BR><\/BR><\/p>\n<div>\n<p class=\"wp-block-paragraph\"><mdspan datatext=\"el1743792074834\" class=\"mdspan-comment\">According<\/mdspan> to various sources, the average salary for <a href=\"https:\/\/towardsdatascience.com\/tag\/coding\/\" title=\"Coding\">Coding<\/a> jobs is ~\u00a347.5k in the UK, which is ~35% higher than the median salary of about \u00a335k.<\/p>\n<p class=\"wp-block-paragraph\">So, coding is a very valuable skill that will earn you more money, not to mention it\u2019s really fun.<\/p>\n<p class=\"wp-block-paragraph\">I have been coding professionally now for 4 years, working as a data scientist and machine learning engineer and in this post, I will explain how I would learn to code if I had to do it all over again.<\/p>\n<h2 class=\"wp-block-heading\">My journey<\/h2>\n<p class=\"wp-block-paragraph\">I still remember the time I wrote my first bit of code.<br \/>It was 9am on the first day of my physics undergrad, and we were in the computer lab.<\/p>\n<p class=\"wp-block-paragraph\">The professor explained that computation is an integral part of modern physics as it allows us to run large-scale simulations of everything from subatomic particle collisions to the movement of galaxies.<\/p>\n<p class=\"wp-block-paragraph\"><em>It sounded amazing.<\/em><\/p>\n<p class=\"wp-block-paragraph\">And the way we started this process was by going through a textbook to learn Fortran.<\/p>\n<p class=\"wp-block-paragraph\"><em>Yes, you heard that right.<\/em><\/p>\n<p class=\"wp-block-paragraph\">My first programming language was <a href=\"https:\/\/en.wikipedia.org\/wiki\/Fortran\" target=\"_blank\" rel=\"noreferrer noopener\"><strong><em>Fortran<\/em><\/strong><\/a>, specifically Fortran 90.<br \/>I learned DO loops before FOR loops. I am definitely a rarity in this case.<\/p>\n<p class=\"wp-block-paragraph\">In that first lab session, I remember writing \u201cHello World\u201d as is the usual rite of passage and thinking, \u201cBig woop.\u201d<\/p>\n<p class=\"wp-block-paragraph\">This is how you write \u201cHello World\u201d in Fortran in case you are interested.\u00a0<\/p>\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-markup\">program hello\nprint *, 'Hello World!'\nend program hello<\/code><\/pre>\n<p class=\"wp-block-paragraph\">I actually really struggled to code in Fortran and didn\u2019t do that well on tests we had, which put me off coding.<\/p>\n<p class=\"wp-block-paragraph\">I still have <a href=\"https:\/\/github.com\/egorhowell\/Physics-Problems-In-Fortran\">some old coding projects<\/a> in Fortran on my GitHub that you can check out.<\/p>\n<p class=\"wp-block-paragraph\">Looking back, the learning curve to coding is quite steep, but it really does compound, and eventually, it will just click.<\/p>\n<p class=\"wp-block-paragraph\">I didn\u2019t realise this at the time and actively avoided programming modules in my physics degree, which I regret in hindsight as my progress would have been much quicker.<\/p>\n<p class=\"wp-block-paragraph\">During my third year, I had to do a research placement as part of my master\u2019s. The company I chose to work for\/with used a graphical programming language called <a href=\"https:\/\/www.ni.com\/en\/shop\/labview.html?srsltid=AfmBOopAxCOBaccZJ5HWmURzbjOW2wi7MaTojaoOXfdMP3Bp917BYXiQ\" target=\"_blank\" rel=\"noreferrer noopener\">LabVIEW<\/a> to run and manage their experiments.<\/p>\n<p class=\"wp-block-paragraph\">LabVIEW is based on something called \u201cG\u201d and taught me to think of programming differently than script-based.<\/p>\n<p class=\"wp-block-paragraph\">However, I haven\u2019t used it since and probably never will, but it was cool to learn then.<\/p>\n<p class=\"wp-block-paragraph\">I did enjoy the research year somewhat, but the pace at which research moves, at least in physics, is painfully slow. Nothing like the \u201cheyday\u201d from the early 20th century I envisioned.<\/p>\n<p class=\"wp-block-paragraph\">One day after work a video was recommended to me on my YouTube home page.<\/p>\n<p class=\"wp-block-paragraph\">For those of you unaware, this was a documentary about DeepMind\u2019s AI AlphaGo that beat the best GO player in the world. Most people thought that an AI could never be good at GO.<\/p>\n<p class=\"wp-block-paragraph\">From the video, I started to understand how AI worked and learn about neural networks, reinforcement learning, and deep learning.<br \/>I found it all so interesting, similar to physics research in the early 20th century.<\/p>\n<p class=\"wp-block-paragraph\">Ultimately, this is when I started studying for a career in <a href=\"https:\/\/towardsdatascience.com\/tag\/data-science\/\" title=\"Data Science\">Data Science<\/a> and machine learning, where I needed to teach myself Python and SQL.<\/p>\n<p class=\"wp-block-paragraph\">This is where I so-called \u201cfell in love\u201d with coding.<br \/>I saw its real potential in actually solving problems, but the main thing was that I had a motivated reason to learn. I was studying to break into a career I wanted to be in, which really drove me.<\/p>\n<p class=\"wp-block-paragraph\">I then became a data scientist for three years and am now a <a href=\"https:\/\/towardsdatascience.com\/tag\/machine-learning\/\" title=\"Machine Learning\">Machine Learning<\/a> engineer. During this time, I worked extensively with Python and SQL.<\/p>\n<p class=\"wp-block-paragraph\">Until a few months ago, those were the only programming languages I knew. I did learn other tools, such as bash\/z-shell, AWS, docker, data bricks, snowflake, etc. but not any other \u201cproper\u201d programming languages.<\/p>\n<p class=\"wp-block-paragraph\">In my spare time, I dabbled a bit with C a couple of years ago, but I have forgotten virtually all of it now. I have <a href=\"https:\/\/github.com\/egorhowell\/C-Programming\">some basic scripts<\/a> on my GitHub if you are interested.<\/p>\n<p class=\"wp-block-paragraph\">However, in my new role that I started a couple of months ago, I will be using Rust and GO, which I am very much looking forward to learning.<\/p>\n<p class=\"wp-block-paragraph\"><em>If you are interested in my entire journey to becoming a data scientist and machine learning engineer, you can read about it below:<\/em><\/p>\n<figure class=\"wp-block-embed is-type-wp-embed is-provider-towards-data-science wp-block-embed-towards-data-science\">\n<div class=\"wp-block-embed__wrapper\">\n<blockquote class=\"wp-embedded-content\" data-secret=\"jjybUKmJvn\"><p><a href=\"https:\/\/towardsdatascience.com\/how-i-became-a-machine-learning-engineer-no-cs-degree-no-bootcamp\/\">How I Became A Machine Learning Engineer (No CS Degree, No Bootcamp)<\/a><\/p><\/blockquote>\n<p><iframe loading=\"lazy\" class=\"wp-embedded-content\" sandbox=\"allow-scripts\" security=\"restricted\" title=\"\u201cHow I Became A Machine Learning Engineer (No CS Degree, No Bootcamp)\u201d \u2014 Towards Data Science\" src=\"https:\/\/towardsdatascience.com\/how-i-became-a-machine-learning-engineer-no-cs-degree-no-bootcamp\/embed\/#?secret=QvkjjdLSdP#?secret=jjybUKmJvn\" data-secret=\"jjybUKmJvn\" width=\"500\" height=\"282\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\"><\/iframe>\n<\/div>\n<\/figure>\n<h2 class=\"wp-block-heading\">Choose a\u00a0language<\/h2>\n<p class=\"wp-block-paragraph\">I always recommend starting with a single language.<\/p>\n<p class=\"wp-block-paragraph\">According to <a href=\"https:\/\/www.testgorilla.com\/blog\/how-many-programming-languages\/\" target=\"_blank\" rel=\"noreferrer noopener\">TestGorilla<\/a>, there are over 8,000 programming languages, so how do you pick one?<\/p>\n<p class=\"wp-block-paragraph\">Well, I would argue that many of these are useless for most jobs and have probably been developed as pet projects or for really niche cases.<\/p>\n<p class=\"wp-block-paragraph\">You could choose your first language based on popularity. The<a href=\"https:\/\/survey.stackoverflow.co\/2024\/technology#most-popular-technologies\" target=\"_blank\" rel=\"noreferrer noopener\"> Stack Overflow 2024 survey<\/a> has great information on this. The most popular languages are JavaScript, <a href=\"https:\/\/towardsdatascience.com\/tag\/python\/\" title=\"Python\">Python<\/a>, SQL, and Java.<\/p>\n<p class=\"wp-block-paragraph\">However, the way I recommend you choose your first language should be based on what you want to do or work as.<\/p>\n<ul class=\"wp-block-list\">\n<li class=\"wp-block-list-item\">\n<strong>Front-end web\u200a\u2014\u200a<\/strong>JavaScript, HTML, CSS<\/li>\n<li class=\"wp-block-list-item\">\n<strong>Back-end web\u200a\u2014\u200a<\/strong>Java, C#, Python, PHP or GO<\/li>\n<li class=\"wp-block-list-item\">\n<strong>iOS\/macOS apps<\/strong>\u200a\u2014\u200aSwift<\/li>\n<li class=\"wp-block-list-item\">\n<strong>Andriod apps<\/strong>\u200a\u2014\u200aKotlin or Java<\/li>\n<li class=\"wp-block-list-item\">\n<strong>Games<\/strong>\u200a\u2014\u200aC++ or C<\/li>\n<li class=\"wp-block-list-item\">\n<strong>Embedded Systems\u200a<\/strong>\u2014\u200aC or C++<\/li>\n<li class=\"wp-block-list-item\">\n<strong>Data science\/machine learning \/ AI<\/strong>\u200a\u2014\u200aPython and SQL<\/li>\n<\/ul>\n<p class=\"wp-block-paragraph\">As I wanted to work in the AI\/ML space, I focused my energy mainly on Python and some on SQL. It was probably a 90% \/ 10% split as SQL is smaller and easier to learn.<\/p>\n<p class=\"wp-block-paragraph\">To this day, I still only know Python and SQL to a \u201cprofessional\u201d standard, but that\u2019s fine, as pretty much the whole machine-learning community requires these languages.<\/p>\n<p class=\"wp-block-paragraph\">This shows that you don\u2019t need to know many languages; I have progressed quite far in my career, only knowing two to a significant depth. Of course, it would vary by sector, but the main point still stands.<\/p>\n<p class=\"wp-block-paragraph\">So, pick a field you want to enter and choose the most in-demand and relevant language in that field.<\/p>\n<h2 class=\"wp-block-heading\">Learn the bare\u00a0minimum<\/h2>\n<p class=\"wp-block-paragraph\">The biggest mistake I see beginners make is getting stuck in \u201ctutorial hell.\u201d<\/p>\n<p class=\"wp-block-paragraph\">This is where you take course after course but never branch out on your own.<\/p>\n<p class=\"wp-block-paragraph\">I recommend taking a maximum of two courses on a language\u200a\u2014\u200aliterally any intro course would do\u200a\u2014\u200aand then starting to build immediately.<\/p>\n<p class=\"wp-block-paragraph\">And I literally mean, build your own projects and experience the struggle because that\u2019s where learning is done.<\/p>\n<p class=\"wp-block-paragraph\">You won\u2019t know how to write functions until you do it yourself, you won\u2019t know how to create classes until you do it yourself, and you literally won\u2019t understand loops until you implement them yourself.<\/p>\n<p class=\"wp-block-paragraph\">So, learn the bare minimum and immediately start experimenting; I promise it will at least 2x your learning curve.<\/p>\n<p class=\"wp-block-paragraph\">You probably have heard this advice a lot, but in reality it is that simple.\u00a0<\/p>\n<p class=\"wp-block-paragraph\">I always say that most things in life are simple but hard to do, especially in programming.<\/p>\n<h2 class=\"wp-block-heading\">Avoid trends<\/h2>\n<p class=\"wp-block-paragraph\">When I say avoid trends, I don\u2019t mean not to focus on areas that are doing well or in demand in the market.<\/p>\n<p class=\"wp-block-paragraph\">What I am saying is that when you pick a certain language or specialism, stick with it.<\/p>\n<p class=\"wp-block-paragraph\">Programming languages all share similar concepts and patterns, so when you learn one, you indirectly improve your ability to pick up another later.<\/p>\n<p class=\"wp-block-paragraph\"><em>But you still should focus on one language for at least a few months.<\/em><\/p>\n<p class=\"wp-block-paragraph\">Don\u2019t develop \u201cshiny object syndrome\u201d and chase the latest technologies; it\u2019s a game that you will unfortunately lose.<\/p>\n<p class=\"wp-block-paragraph\">There have been so many \u201cdistracting\u201d technologies, such as blockchain, Web3, AI, the list goes on.<\/p>\n<p class=\"wp-block-paragraph\">Instead, focus on the fundamentals:<\/p>\n<ul class=\"wp-block-list\">\n<li class=\"wp-block-list-item\">Data types<\/li>\n<li class=\"wp-block-list-item\">Design patterns<\/li>\n<li class=\"wp-block-list-item\">Object-oriented programming<\/li>\n<li class=\"wp-block-list-item\">Data structures and algorithms<\/li>\n<li class=\"wp-block-list-item\">Problem-solving skills<\/li>\n<\/ul>\n<p class=\"wp-block-paragraph\">These topics transcend individual programming languages and are much better to master than the latest Javascript framework!<\/p>\n<p class=\"wp-block-paragraph\">It\u2019s much better to have a strong understanding of one area than try to learn everything. Not only is this more manageable, but it is also better for your long-term career.<\/p>\n<p class=\"wp-block-paragraph\">As I said earlier, I have progressed quite well in my career by only knowing Python and SQL, as I learned the required technologies for the field and didn\u2019t get distracted.<\/p>\n<p class=\"wp-block-paragraph\">I can\u2019t stress how much leverage you will have in your career if you document your learning publicly.<\/p>\n<h2 class=\"wp-block-heading\">Document your\u00a0learning<\/h2>\n<p class=\"wp-block-paragraph\">I don\u2019t know why more people don\u2019t do this. Sharing what I have learned online has been the biggest game changer for my career.<\/p>\n<p class=\"wp-block-paragraph\">Literally committing your code on GitHub is enough, but I really recommend posting on LinkedIn or X, and ideally, you should create blog posts to help you cement your understanding and show off you knowledge to employers.<\/p>\n<p class=\"wp-block-paragraph\">When I interview candidates, if they have some sort of online presence showing their learnings, that\u2019s immediately a tick in my box and an extra edge over other applicants.<\/p>\n<p class=\"wp-block-paragraph\">It shows enthusiasm and passion, not to mention increasing your surface area of serendipity.\u00a0<\/p>\n<p class=\"wp-block-paragraph\">I know many people are scared to do this, but you are suffering from the <a href=\"https:\/\/en.wikipedia.org\/wiki\/Spotlight_effect\" target=\"_blank\" rel=\"noreferrer noopener\">spotlight effect. Wikipedia defines this as<\/a>:<\/p>\n<figure class=\"wp-block-pullquote\">\n<blockquote>\n<p>The spotlight effect is the psychological phenomenon by which people tend to believe they are being noticed more than they really\u00a0are.<\/p>\n<\/blockquote>\n<\/figure>\n<p class=\"wp-block-paragraph\">No one literally cares if you post online or think about you as much as 1% as you think.\u00a0<\/p>\n<p class=\"wp-block-paragraph\">So, start posting.<\/p>\n<h2 class=\"wp-block-heading\">What about\u00a0AI?<\/h2>\n<p class=\"wp-block-paragraph\">I could spend hours discussing why AI is not an immediate risk for anyone who wants to work in the coding profession.<\/p>\n<p class=\"wp-block-paragraph\">You should embrace AI as part of your toolkit, but that\u2019s as far as it will go, and it will definitely not replace programmers in 5 years.<\/p>\n<p class=\"wp-block-paragraph\">Unless an AGI breakthrough suddenly occurs in the next decade, which is highly unlikely.<\/p>\n<p class=\"wp-block-paragraph\">I personally doubt the answer to AGI is the <a href=\"https:\/\/en.wikipedia.org\/wiki\/Cross-entropy\" rel=\"noreferrer noopener\" target=\"_blank\">cross-entropy loss function<\/a>, which is what is used in most LLMs nowadays.<\/p>\n<p class=\"wp-block-paragraph\">It has been shown <a href=\"https:\/\/www.forbes.com\/sites\/ronshevlin\/2024\/10\/14\/apple-says-generative-ai-isnt-good-at-math\/\" rel=\"noreferrer noopener\" target=\"_blank\">time<\/a> and <a href=\"https:\/\/techcrunch.com\/2024\/10\/11\/researchers-question-ais-reasoning-ability-as-models-stumble-on-math-problems-with-trivial-changes\/\" rel=\"noreferrer noopener\" target=\"_blank\">time<\/a> again that these AI models lack strong mathematical reasoning abilities, which is one of the most fundamental skills to being a good coder.<\/p>\n<p class=\"wp-block-paragraph\">Even the so-called \u201csoftware engineer killer\u201d Devin is <a href=\"https:\/\/daily.dev\/blog\/is-devin-a-scam-unpacking-the-truth-behind-the-claims\" rel=\"noreferrer noopener\" target=\"_blank\">not as good<\/a> as the creators initially marketed it.\u00a0<\/p>\n<p class=\"wp-block-paragraph\">Most companies are simply trying to boost their investment by hyping AI, and their results are often over-exaggerated with <a href=\"https:\/\/arxiv.org\/html\/2502.06559v1#:~:text=It%20brings%20together%20many%20fine,text-based%20AI%20models%20according\" target=\"_blank\" rel=\"noreferrer noopener\">controversial benchmark testing<\/a>.<\/p>\n<p class=\"wp-block-paragraph\">When I was building a website, ChatGPT even struggled with simple HTML and CSS, which you can argue is its bread and butter!<\/p>\n<p class=\"wp-block-paragraph\">Overall, don\u2019t worry about AI if you want to work as a coder; there is much, much bigger fish to fry before we cross that bridge!<\/p>\n<p class=\"wp-block-paragraph\"><em>NeetCode has done a great video explaining how current AI is incapable of replacing programmers.<\/em><\/p>\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\">\n<div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"Why is everyone LYING?\" width=\"500\" height=\"281\" src=\"https:\/\/www.youtube.com\/embed\/U_cSLPv34xk?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div>\n<\/figure>\n<h2 class=\"wp-block-heading\">Another thing!<\/h2>\n<p class=\"wp-block-paragraph\">Join my free newsletter, <em><a href=\"https:\/\/newsletter.egorhowell.com\/\">Dishing the Data<\/a><\/em>, where I share weekly tips, insights, and advice from my experience as a practicing data scientist. Plus, as a subscriber, you\u2019ll get my <strong>FREE Data Science Resume Template!<\/strong><\/p>\n<h2 class=\"wp-block-heading\">Connect with\u00a0me<\/h2>\n<ul class=\"wp-block-list\">\n<li class=\"wp-block-list-item\">\n<a href=\"https:\/\/www.youtube.com\/@egorhowell\" target=\"_blank\" rel=\"noreferrer noopener\"><strong>YouTube<\/strong><\/a>, <a href=\"https:\/\/www.linkedin.com\/in\/egorhowell\/\" target=\"_blank\" rel=\"noreferrer noopener\"><strong>LinkedIn<\/strong><\/a>, <a href=\"https:\/\/www.instagram.com\/egorhowell\/\" target=\"_blank\" rel=\"noreferrer noopener\"><strong>Instagram<\/strong><\/a>\n<\/li>\n<li class=\"wp-block-list-item\">\n<img data-recalc-dims=\"1\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/s.w.org\/images\/core\/emoji\/15.0.3\/72x72\/1f449.png?ssl=1\" alt=\"\ud83d\udc49\" class=\"wp-smiley\" style=\"height: 1em; max-height: 1em;\"> <a href=\"https:\/\/topmate.io\/egorhowell\/1203300\" target=\"_blank\" rel=\"noreferrer noopener\"><strong>Book a 1:1 mentoring call<\/strong><\/a>\n<\/li>\n<\/ul>\n<p>The post <a href=\"https:\/\/towardsdatascience.com\/how-i-would-learn-to-code-if-i-could-start-over\/\">How I Would Learn To Code (If I Could Start\u00a0Over)<\/a> appeared first on <a href=\"https:\/\/towardsdatascience.com\/\">Towards Data Science<\/a>.<\/p>\n<\/div>\n<p> \t<BR><br \/>\n <BR><\/BR><br \/>\n    Egor Howell<br \/>\n \t<BR><br \/>\n<BR><\/BR><br \/>\n<a href=\"https:\/\/towardsdatascience.com\/how-i-would-learn-to-code-if-i-could-start-over\/\">Go to original source<\/a><br \/>\n \t<BR><br \/>\n <BR><\/BR><\/p>\n","protected":false},"excerpt":{"rendered":"<p>How I Would Learn To Code (If I Could Start\u00a0Over) According to various sources, the average salary for Coding jobs is ~\u00a347.5k in the UK, which is ~35% higher than the median salary of about \u00a335k. So, coding is a very valuable skill that will earn you more money, not to mention it\u2019s really fun. [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[62,69,365,83,70,160,157],"tags":[2284,2285,108],"class_list":["post-2887","post","type-post","status-publish","format-standard","hentry","category-aimldsaimlds","category-artificial-intelligence","category-coding","category-data-science","category-machine-learning","category-programming","category-python","tag-coding","tag-fortran","tag-my"],"_links":{"self":[{"href":"https:\/\/mailitics.com\/index.php\/wp-json\/wp\/v2\/posts\/2887"}],"collection":[{"href":"https:\/\/mailitics.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mailitics.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mailitics.com\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/mailitics.com\/index.php\/wp-json\/wp\/v2\/comments?post=2887"}],"version-history":[{"count":0,"href":"https:\/\/mailitics.com\/index.php\/wp-json\/wp\/v2\/posts\/2887\/revisions"}],"wp:attachment":[{"href":"https:\/\/mailitics.com\/index.php\/wp-json\/wp\/v2\/media?parent=2887"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mailitics.com\/index.php\/wp-json\/wp\/v2\/categories?post=2887"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mailitics.com\/index.php\/wp-json\/wp\/v2\/tags?post=2887"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}