 Learning to code is probably one of the best decisions I've made in my life. It opened up so many different opportunities and allowed me to find a career that I truly love. Not to mention, it has such a useful skill nowadays, and will allow you to find jobs that pay quite above average. So, in this video, I want to go over my whole coding journey, whilst giving you some advice for those of you at the beginning of yours. Let's get into it. Now, I was in that some young protégé who built their first compiler at age 5, or their whole computer at age 10. I actually wrote my first line of code at the age of 18 at university. My dream when I was younger was to become a physics researcher after watching the Big Bang Theory around the age of 13. My ideal goal at that point in time was simply just to scribble all day on a whiteboard of paper solving complex proofs in quantum mechanics or general relativity. Yet, in my first class at university, of my physics degree, I was put into a computer lab and will gain taught how to code. And the first language they taught us, which is arguably not the best way to start, was FORTRAN. I now have some sort of romantic affinity towards FORTRAN. I've even written an article describing why data scientists should learn FORTRAN and where it could be used in machine learning. However, with it being the first language I ever learned, at the time, it made me not really like coding that much. For those of you unfamiliar, FORTRAN is probably the oldest high-level general programming language. It came out roughly in 1958, and it's pretty old and it's not really used that much anymore. It's by far from ideal the first language you start coding in. Compared to the likes of Python and JavaScript, which are very easy to use, and you can quickly build things really early on. FORTRAN is a lot harder, there's a smaller community, and it's just not as well kind of supported as the whole language compared to Python and JavaScript like I just mentioned. Learning FORTRAN is my first language. It made me not like coding all that much. And throughout university, I basically just avoided modules which contained any form of coding element because of this initial kind of fear or, you know, kind of not enjoying it so much. I also didn't perform that well on my first few coding tests, which is probably another reason why I didn't like it so much. However, despite my initial lack of love for coding, I did learn some useful things in those first few modules that I took at university. I learned things like, you know, what types, variables, loops, functions, how to use terminal, what is bash, and zshell. Just all the key patterns and tools you need around a programming language to basically create things. To be honest, even though I could code and solve basic physics problems in FORTRAN, I still didn't really understand exactly what was going on. I was kind of just learning these concepts just to pass and do well in my university course. Not necessarily to really dive deep and have that real deep intuition behind what I'm actually doing and what all these things in the code really mean. Now, at this point in my university career, I'm in my third year and I'm doing a research placement as part of my master's. Now, I have a whole other video which I explained exactly why I want to become a data scientist and how I became one. I'm linking someone's screen here, but the basic gist is that I fell out of love with physics because research wasn't quite for me and I basically watched this video of DeepMind's AlphaGo documentary and it basically inspired me to learn machine learning and ultimately pursue a career in data science. To be a data scientist, it's pretty common knowledge that you need to be well versed in Python. N's equal, but Python's come to the main programming language you would use day to day. So even though at the time coding wasn't something that I was like overly interested in, I really want to become a data scientist to implement all these fancy machine learning algorithms. So I had to go about learning Python. Now, the first course I ever took was this free co-cam video on basically learning Python from scratch. It's about five hours long and I did it all in one sitting. I still recommend this course to this day. It's very short. Like I said, you can do it on one go and it'll teach you pretty much everything you need to know about Python at the beginner level. Throughout that free co-cam course, I also supplemented my learning through the websites of W3Schools and tutorials points. Now, I find it really useful to get multiple explanations and examples of the same topic because I really believe that enhances my personal learning. After I took those courses and I understood kind of all the basic syntax and concepts around Python, it was time to get some hands-on experience. And to do this, I basically did around 50 problems on hacker rank. For those of you who don't know what a hacker rank is, it's kind of like Lee Code where you have a problem that's really framed in its own environment and your goal is to solve it. What websites like Hacker Rank and Lee Code do is that, yes, you can solve the problem in so many ways, but they also teach you kind of the best ways to solve a problem, like the most efficient in terms of complexity. And that is something that's a really useful skill because it really allows you to learn the language inside out and understand all its nuances. Now, at this point, I had all my basics down. I knew all the Pythonic concepts or at least the basic ones and I knew how to solve kind of simple problems from the hacker rank tutorials that I did. So for me, as I once become a data scientist, I then focus my attention on learning the kind of the data science tech stack of Python. And to do this, I took the courses on Kaggle. So Kaggle is basically a data science kind of competition or website that people can come upload data sets, work through notebooks and, like I said, also enter competitions. And another thing I did was message my lecturer who ran a physics for Python course at university and basically requested lecture notes from him. Now, data science and Python have quite big of an overlap and so all the kind of things you'll cover in the physics of Python course will be very applicable to the data science kind of tech stack of Python as well. And at this point, to be honest, I felt like I knew Python at a good level. I mean, I didn't know everything like, you know, what are abstract decorates and how to use them, but I knew pretty much the basics and like the beginner level things you need to know to a good standard. Along with Python, I also took a couple of courses in SQL because as people say, SQL is a language of data. The two courses that I took was the complete SQL bootcamp for Udemy and the W3Schools tutorial on SQL. Again, both very useful and I really recommend those two if you're planning on learning SQL. It shouldn't take you too long once you know kind of like Python or any other language, SQL is quite simple to learn as it's quite different, but it's very intuitive. And from then on, after learning Python and SQL, I just built several simple machine learning and data science projects. But at this point, I was kind of more focused on learning data science as a concept rather than understanding how to program. And so that's kind of the end of my initial learning to codes kind of career you can call it. Right, so now I want to go over some tips that I wish I had when I first started learning to code and also some things that I think I did quite well and that really benefited my learning and may also benefit you in your coding journey. The first tip is just to pick one language and really go deep in it. Now, ideally, I recommend starting with either Python or JavaScript. Now, you can start with languages such as C, C++, Rast 4, trying to be really one too. But in my opinion, they're a lot harder to like grasp right at the beginning. And it may make you feel a bit unmotivated because the kind of learning progress is a lot slower. Whereas with Python and JavaScript, it's a lot more intuitive. You'd be able to build things quicker and now probably motivate you more to keep on learning. Obviously, like I said, you're free to choose what you want. That's just my opinion. Either Python or JavaScript doesn't matter too much. But, you know, it's better to start with quite a high level language than a really low level language like C because, you know, it'll kind of inspire you to code more because it's a lot easier to work with. The second tip is that it will be hard. Like coding is such a hard skill. It's not simple. And you got to really kind of tune your brain to think in a programmatic way, which a lot of people may not naturally have. I think some people see as quite glamorous thing. Like you're there just, you know, smashing your keyboard, having green lines running down your screen, or you're going to build a next Facebook within a few days. But, you know, to be honest, most of your day is spent googling basic arrows of why your functions are working when you're trying to add two integers. You know, things like this, it's just not glamorous. And to be honest, most of your time is spent thinking rather than typing on the keyboard. So, you should go remember that it is hard, but eventually those small gains will compound into something bigger. And your understanding will explode and you'll be able to build things and iterate a lot faster than you did right at the beginning. As the famous entrepreneur and investor, Neville Ravecan said, you know, it's not 10,000 hours, it's 10,000 iterations. So you have to put in the reps to get good and eventually those reps will scale to something a lot bigger than you initially thought. And the final reason is that you've got to have a why. For me, my why was that I want to become a data scientist. So even on the days and times where I didn't feel like coding, I was like, oh, this is boring, you know, I'm not learning, I'm struggling. I had that initial kind of, you know, goal in my head that I want to become a data scientist. And that's what really powered me through those kind of days where I didn't feel that motivated is that discipline and having a bigger reason to why you're doing things that really drives you forward. However, your reason could be a lot smaller. It could be that you run a cupcake business and you want to make a website for it. You may not have a why and you just want to learn how to code. And that's completely fine and also very cool. But I really recommend that even if you don't have a why like me or, you know, that cupcake business owner I just mentioned, have something like you want to build a project and write a blog about it. At least you have some direction in your learning and there is an end goal in sight. And when you achieve that end goal you feel very satisfied. Coding is a skill that's becoming more and more useful every single year. If you're thinking about learning it then I highly recommend you jump in because it's such an invaluable tool to have in your, you know, in your brain basically for the rest of your life. If you enjoyed this video and you'd like to hear more from me I run a weekly newsletter called Dish in the Data. It's basically a place for me to write my thoughts and feelings as a data scientist and give you some advice into how I'm improving and things I'm learning along my journey. So if that sounds interesting make sure you click the link in the description. If you enjoyed this video and want more videos like this on this channel then make sure you click the like and subscribe button and I'll see you in the next one.