Another key thing - All coders, no matter how experienced, end up googling for answers. Don't fall for the illusion that coders retain all the knowledge in their heads.
Another thing .I once was looking for about 4 hours or so for a solution to my problem. I found the solution by switching the position of two words in my sentence. I was like "da fuck?". So rephrasing is definitely something you should consider when looking something up
@@-karter-4556 Only if you need that information frequently. (The amount of data also plays a role. The less you need to memorise the more advantageous remembering becomes.)
I'm in my final year of university studying computer science and getting ready to take on my final year project, and I feel like this would be a good time to start learning how to code. Update: I got an A on the project.
And not 1 minute of the video is about how to learn to code. its exclusively about frameworks. Thats like learning how fast all the cars can go without ever learning traffic rules. Honestly just write code without all those gigantic nonsense frameworks attached. the amount of horrible practices you have to unteach junior game devs that only lerned c# through unity is immense. they only learn how to press the unity buttons and unitys bastardization of c# without ever learning how to write actual free standing c# code.
man in all seriousness this channel is super underated. ive been watching coding advice vids for years and these are the most straightforword answers ive ever seen.
Remember: give yourself permission to write ugly code. It's just a first draft. It can always be refactored and improved upon later. Also this helps over-engineering your code / aiming for 'perfection' on first try, which usually just slows the development down. Edit: better advice in the replies
i think it can be more useful to break a problem into high-level steps first and organize top-down to keep things cohesive. getting used to writing messy code makes it harder to debug, which ends up being more painful that initial organization.
@@mcsquidinc.4648 Great point and great advice. Perhaps allowing oneself to write messy and ugly code is not so much a good idea, but it's rather the point of not holding oneself to perfection in the first go. I tend to freeze up when thinking of the "BEST" way to implement something and worrying more about if there's a better way to approach what I'm aiming for. "write ugly code" doesnt really fit that point concisely looking back at that comment
I agree, start early, start ugly! There will be many, many drafts. (Use Git, Use TDD) Most important is to start. Take pride in your first steps, no matter how unsteady they may be. It's an iterative process, and you'll be painting over, and revitalizing your past work. Make a small step towards better, rinse and repeat.
@@256k_ That's the issue. Obviously, trying for perfect is probably going to result in the program not being completed ever, but assuming that you'll come back to it is a big assumption. Especially if you're being paid to develop the code, chances are that once you've got something good enough, that you won't be paid to go back unless there's a problem that arises later on that's bad enough to require a fix.
For those who want to go the C route, I recommend two books: "C: from Theory to Practice" by Tselikis and Tselikas. It's fast paced and contains tons of solved and unsolved problems. "C Primer Plus" by Stephen Prata. Has fewer exercises but more through explanations.
My advise on programming is learning what does it (whatever tech/tool you're leaning) do, and why is it important/needed. Programming is building with digital legos. Once you really understand what you're building and why you are building something, the questions on "how" will naturally come to your mind, thus google will become your best friend.
@@turolretar Good luck debugging its code if you're gonna ask it to write anything more complex than a small snippet. It is still a work in progress software and the legality of its use is uncertain.
Fun fact: If you chose the masochist route, the EXP gained will have bonus multipliers which allows you to apply for jobs that requires more years of experience than your age or the age of the framework they specified.
One of the greatest summaries of the suffering. Trying to get into it now at 32. But man, the potential I see in coding... Thank you for your hard work in this
It's ok I'm 47 and getting into it myself as well. Since my son is grown and active duty in the Marines it's time to learn how to code and start making the big money. For me I am not worried one bit because even if I don't get to work for a big company I know I can still do freelance work and also build automation bots to promote affiliate links and make money in multiple ways. So I will be set either way once I get it down on how to do python and javascript. Of course I will apply for the big companies but if it doesn't work out I won't be worried one bit.
@@commentarytalk1446 Prisoners don't get that kind of free time. Slavery is still alive and well in the prison system and was expanded thanks to Jim Crow Joe Biden's '94 crime bill. We aren't 4% of the world's population and 20% of the world's prisoners by accident. If you don't work you get put in solitary. US prisons are the largest forced labor camps in the world, not exactly conducive to learning programing.
This is why C# and JavaScript are great languages to pick up just for the sheer amount of stuff you can do with each of these languages and their ecosystems
I think the best advise comes at the end where you need to pick one thing and get really good at it. Find your niche and practice picking up new things.
The embedded road map that will get you hired: 1- start with arduino. Arduino IDE, some small project there. 2 - after you feel comfortable with it, drop the Ide, find the PDF for your chips data sheet, and use atmel studio and a Jtag Debugger. Code in raw C. Your project will run way faster without the arduino overhead, and you'll learn a lot more about how MCUs actually work. 3- learn KiCad. Make a PCB for your project. 4 - grab an STM32 board. They all run off of the same basic Arm architecture, and have way faster speeds than your average atmel chip. They are a little more complex, but If you're used to reading atmel datasheets, you'll be good. 4.5 - learn arm ASM, and how hex files work. If you're good with C, it'll help you depend your understanding. 5 - build a project around a GHz+ NXP chip, or bare metal programming on a Raspberry pi. You'll learn all the considerations you have to take into account working at very high clock speeds. After this, with all the extra stuff you'll learn along the way (serial protocols, external chips, HIDs, ect) you will be unstoppable.
This is pure gold. It took me 2 years of research to get to the same conclusions that you summed up in this vid. Now I just need to finally go and learn something...
@@Sovereign589 My friend told me that if you want to make a plan, make it short and simple and make sure it's something you'll do soon. Otherwise you're most likely not gonna do it.
Step 0 is the most important advice I think anybody can have when first starting out. It's always what I tell people when they first get into coding. Create your own backlog of reasonable projects (emphasis on reasonable) that you can create as you build your new skills. Going through endless tutorials is boring. Building a project you're passionate about is fun, which will make it more memorable and help you retain all of the information you're taking in. I recommend staying away from the numerous frameworks and libraries until you have a strong foundation in the languages you choose for your projects (if they are actually "reasonable" for your skill level, you wont need them anyway). Dig in to that stuff on subsequent projects where the goal isn't to "learn to program" or to "learn JavaScript" but instead the goal is to "learn React" or whatever framework is the objective. Everyone is different though. Know thyself when it comes to learning. If you like a chaotic approach too, then open up all of those boxes at once. I like a structured, 1-by-1 approach, personally. Most importantly, have fun!
This is true, I gave up learning to code many times by getting stuck in overly long and boring tutorials and courses. Most I learned was when I just attempted to build something of my own and googling stuff along the way.
This is the trap I've fallen into now. I'm studying for an IT diploma, and my course is theory based, so I'm figuring out the coding bit on my own. The thought of building my own projects is pretty intimidating tbh, so I've just been following along tutorials
@@KatyVLOGS12"Hmmm, I wonder how hard but cool would be if I make... err... a restaurant management app, that... facilitates the work of managers and give the ceo all the helpful tools that he might need" It goes somewhat like that, you just think about something random that could be considered useful and do it
well its been another 5 and i have a question lol, 1. how did it go and 2. if it went well what do you recommend i start with for someone that wants to start learning unreal engine aswell! i have experience with Java and Python, im in my second year of Uni, would very much appreciate your reply and reccomendations.
@@zrashad you cannot learn unreal engine 5 by your own you have to a buy a course i learned that hard way its been a 8 months its a hell for a new developer like me to get it all to together use Udemy you will be succeed
Here’s something for you. I cannot code, never learnt. I picked up chatgpt messinga round with it asking thousands of questions about coding, what does this do, how does this work, what is this error, and after 2 months I have built a (very crude) web app that is a job management scheduling system for my services business I do IRL. Authentication, flask backend, react front end, hosted remotely. Chatgpt is a game changer. It will either completely replace coding eventually or drastically bridge the gap between senior and junior devs
I have so much respect for programmers of all languages. I started going down the web design path in late September/early October and the amount of knowledge required is absurd. I am currently struggling with JS and It feels like I’ll never be able to learn it but I don’t plan on giving up. I encourage anyone who wants to give coding a try to do so.
The key is definitly to give your self some time, you need to go through so much information, you need to give your brain time to connect the dots. Today you're learning the basics of js in a month or two you're learning about api's, databases, servers and all the frameworks and platforms that come with it. You will soon be able to have a grasp of what's out there and what it's for and then you can focus down on frameworks and technologies that interest you.
yes definitely go easy on yourself (and dont be afraid to ask "stupid" questions). i found that learning how programming and computers work was what i call a "nonlinear" process. if you want to learn history, read history. sure there are a whole lot of other things to consider in the process of understanding history but, compared to learning how to program the basic process is to step through the events and gather as much relevant information as possible. you cant read, "the Pinkerton gun thugs and strike breakers opened fire on the striking laborers in Ludlow, Colorado at the behest of the US gov't and capitalist tycoons before walking through their makeshift encampment and setting each of their tents and shanties ablaze - many times with women and children still alive inside." and be terribly confused by the actual events that took place. this particular event is incredible and raises a million other questions, certainly. but as far as actually understanding the event, what took place, there is nothing to do but step through the historical record... contrast this with programming... (oh and yes, enjoy my planted historical plug about a very, very important event in US history) programming is "nonlinear" in the sense that, when you are first starting out, completely naive to what the hell a computer does or why and how programming languages do anything at all, you can go through long periods where it seems like you have accomplished absolutely nothing and have made zero progress. then, one day, out of nowhere, when you are absolutely convinced of your failings, something clicks. from the abyss comes a flood of understanding. you thought you were nowhere and then all of a sudden you are everywhere. this is what i mean by "nonlinear". there was no incremental steps along the way to help assure you of progress. there was nothing and then everything. this is why you remain steadfast in your efforts so long as your goals of learning how to program remain your interest. i promise you. you can learn the dark arts and once you do youll realize you can learn anything! oh yeah and dont be to impressed or intimidated by the amount of knowledge other programmers seem to possess. i can assure you that they do possess quite a bit of knowledge but once you clear a few learning humps you'll find learning new things to not only be enjoyable but that as you learn more and more the process gets easier and easier. that is you "learn how to learn" and given that the subject matter of computer science and programming has a whole lot of overlapping parts learning one thing leads to (or "sheds light on") other things. the trick is to get over those initial "learning humps", keep at it and you will, i am 100% certain of this!
Been programming since I was 12 or so, if you can count what I was doing at 12 programming. I'm in my fourth year of college for it now - here's my advice: Never be afraid to google something you don't quite understand and look for a different source. Sometimes it just takes the information or example code being written in a different way for it to make sense. If you're REALLY stuck - taking a quick 30-minute break to simply just go on a walk or grab a snack does wonders for letting information sink into your brain. Sometimes it takes a minute for the neurons to connect together in the right way. Taking a walk, even only a short one in the pouring rain/snow, really makes things click into place. It gives your brain a break and time to (importantly) _not think about the problem_ and is a fantastic tool for learning anything, not just programming. Another bit of advice - if you're having a horrible time debugging something, you can't find an answer online as to why it's doing what it's doing, and you're truly stuck - explain, out loud, your code to some sort of inanimate object. (People work too, if you're embarassed to talk to an inanimate object. They don't have to understand programming... just willing to hear you spout computer wizardry at them) It's called "The Rubber Duck Method", but it doesn't really matter what you use. Explain line-by-line what the code is doing, and what the problem you're having is. Eventually, you'll say something so profoundly "captain obvious" that a cartoon lightbulb will appear over your head with a sign that says "I'm with stupid". If it doesn't happen, you probably either didn't explain the part of code that's causing the problem, or you just need a longer break.
@@TheKd8lvt Thanks for the reply, dude. I'll give your suggestions a try the next time I'm frustrated/stuck. I'm definitely not too embarrassed to talk to myself or an inanimate object hahaha. Thanks again and good luck with your schooling.
@Females are the extention of Jews "Communism is a disease that is genetic and is cured by a bullet" is EXACTLY true. the evidence of it being true has been displayed and demonstrated everywhere throughout the history of the 20th century. The Nazis cured it. The Stallinists cured it. the Spaniards cured it. and the US cured it all by just murdering all of those opposed to capitalism... (see. Stalin's take over of the workers revolution, the exile of Trosky and the great terror which targeted for genocide political opponents. see. Nazis who in the shadows of a failed workers revolution in Germany joined forces with the Business class to put down, violently those decent citizens of the working class looking to improve their society a livelihoods. Spain? Franco. Italy? Mussolini. the US??? Vietnam, Central & South America, Libia, Cuba, Haiti, Europe (post-WWII)... actually come to think of it, basically everywhere!)
22 years ago I started with VB4 from a game programming book and made a couple games, years later I made custom MySpace profiles for a while, then I built a guitar app in C#, at some point I made a really crappy skateboarding game in darkbasic, I rebuilt my guitar app with js and learned to host it online. Then, while working 7 years in a customer service call center, I wrote several apps for my employer and used that portfolio to shoe onto a web dev team. After hire, I learned SQL, React, Angular, and AWS really fast because it turns out 7 years of business knowledge makes you more valuable to the team than even the senior devs.
It’s a very good guiding video for an interested person who haven’t start yet , in my opinion this is the best video i have seen in this context ,it becomes rare to see a content creator who take care of the quality at this point , continue ❤
Thank you so much for this. I was completely blank when I wanted to construct a road map for myself for machine learning but never had any idea about it. I was completely stuck and wasted my entire day being depressed and being hopeless. You've given me a path to follow. Tysm
I would say that his video has had a completely opposite effect on me. Seems like it was made more to jerk senior programmers off by showing them how many things they know rather than actually helping newcomers. I started coding a few months ago and if this was one of the first videos I was shown about coding I would have given up on the spot.
I feel I can give some encouragement words to both of you. I started programming something like 2 years ago, I got a job 1 year and a half ago... Just wanted to say, times where you feel discouraged are gonna come sooner or later, but believe in yourselves, tell yourself you can do it, and you'll eventually will Fun fact, I started programming in C, and eventually got to a point where pointers (if you don't know what they are, don't worry you'll probably won't need it) didn't annoy me too much Btw, I know work mostly with typescript and javascript
@@MrFoodMan66 you can't just tell someone exactly what they need to know, there are so many options that you just have to figure out why/what you want to code and then pick the appropriate tools, there's obviously a huge learning curve when it actually comes to learning those tools but to be a programmer you will need to learn them, nobody can expect to watch a video called learn how to be a programmer and walk away from it knowing exactly what to do. It's a legitimate profession that requires high skill and a fair bit of knowledge, this video gives someone a laundry list of jumping off points that can be easily researched/studied on their own, because at the end of the day programmers will have to constantly learn/study throughout their entire career, if you can't do that then just give up now :) happy new year
You're absolutely right that learning C as a first language is amazing to get strong basics. You're never surprise by the weirdness of passing by value/reference when you know pointers well. After you learn such a low level language, anything else seems like a walk in the park.
Doesn't help you understand an uncommentated, confusing python codebase where any variable can be anything and defined anywhere. Literally spend a week of my thesis with trying to figure out what's what.
My father teaches intro to computer science classes at his college, and that’s basically his philosophy when teaching students C++. There’s less abstraction and you have to do more manually. Once you know that, everything else seems easier by comparison.
I watched this video 6 months ago when I was starting to get back on coding... I took the Data road myself and just landed a job... I agree with everything you say! and now I feel much less anxious watching it
Learning C can really set you apart from other coders. The foundational knowledge you get from understanding how memory and pointers works under the hood as well as how to implement data structures from scratch really helps to understand the different trade-offs in other programming languages. Learning C++ on the other hand is generally not worth it unless you need it day to day. I eventually did loop back into C++ after 25 years coding in many other languages only because I wanted to go deep on Unreal Engine.
@@shu3684 Yeah that's somewhat true. In some ways it's harder because you're kinda learning both at the same time. A few years back I did some projects in C++ using Ogre3D, that was fun. My general approach is to learn whatever I need to learn to do whatever I need to do at the time. After many different projects using all sorts of languages and frameworks adding another one to the toolbelt isn't particularly scary anymore.
@@peacemaker7188 Depends what benefits you're looking for. For me, the benefits of learning C are about understanding the principles of memory allocation, pointers, data structures and how programs can be written without classes and other object oriented design semantics. Almost all modern languages hide these things away but really, they are still there under the hood. When you have a good understanding of the foundational layers that modern programming languages are built upon it makes a lot more sense when you run into strange cryptic errors. Learning C++ on the other hand will probably only be beneficial for writing more C++. If you're not actually going to be doing that day to day you'd be better off focusing on higher level languages and building real world applications.
Your humour is a nice touch to your information. To make Ur viewers learn and laugh us a great skill. You are successful in many areas, TH-cam, coding, business. Which combines a lot more skills. Inspiring. You must b quite a personality.
I love how all clips showing a game engine shows Godot only, probably to not download gigabytes of other engines and login to their accounts just to capture seconds of footage.
One thing that he said but I think it's important to have fixed in your mind is the 3d modeling part, is VERY good to know at least the blender(a 3D modelling program free and VERY good, even better to me than some paid, with an enormous community) basics to create a model (even if the end result is bad) because 3d is not like an PNG that you simply put in your screen, and is done, it has a lot of areas that are important for you to understand to communicate with the artist, the raycast part is not that important because the engine make the work for you
Thanks, this has been more useful than I thought. I was the one that went straight to the biggest guy in the prison, which in my case, was C++. I just kept studying the language without any solid goal, and this video gave me some broad image of my options. It's like u brainstormed all the keywords in my head. Thanks.
I'm honestly so thankful for this channel, I'm currently invested in becoming a programmer, and the humor that is put into these videos gets a good laugh out of me and makes me excited to continue.
I have started learning how to code a year and a half ago. I started on JS, but i really found it frustrating since i wasn't not really interested in working on websites and if you wanted to anything more complex it would be too frustrating without a framework, but i did learn the basics. Then i took a break, tried making some games with the Godot engine. It's really fun and i still dabble from time to time. Then i tried to learn some C++. I learned the main basics and it was fun, but again making an actual project is a whole different beast. It is so hard to go from making some mundane program to making something that is actually something you would use. And i am still alienated by the job market. I am not sure is there any chance of me getting even a entry job position. Most companies want you to be an expert. It really makes feel everyone gets their job through nepotism, but that could be not true.
I think being specialized and having a portfolio built around that specialization is the way to go if you want to get employed. If you have a bit of everything but a whole lot of nothing in particular then youre less valuable for any one specific position.
@@lazerhawk2192 The "you have to network part" doesn't give me confidence at all. It just comes down to complete luck if you ever even meet the right people. Nepotism and networking seem to be closely linked together. There are already so many stories of people who have barely even touched code and they are working as a junior dev. And in the future the job market for entry level positions will be even more rough. Think of chatGPT and other AI. Sure everyone laughs at them now, but in a couple years it could easily replace junior devs. I honestly think average programmers will be replaced faster than people working manual labour.
@GrandMonkey I don't believe average/entry level devs will be replaced by AI for a while, but the number will look like it's decreasing due to the bar being raised across the board. Today, everyone wants a staff/senior level person. It's all about risk and velocity. For the most part, nobody wants to take a chance on someone who's yet to prove themself in the job market. Though modern tech is in 'some' ways easier than tech of old, the sheer breadth of knowledge you need to be competent, and produce quickly, are higher than ever.
Thank you for making a video on this subject. I feel often it’s harder for newer programmers to dig in and find good places to learn to code. But sometimes, it’s the person. Not the guide.
Great video - another fun thing I think worth mentioning with systems engineering and programming in C/C++ is performance programming (writing parallel and concurrent programs). Pretty fun and challenging to optimize old algos like kmeans and functions like fast Fourier transforms.
As someone who was (still is I guess) a Mechanical Engineer who kept finding myself learning/writing code (shitty code I bet) to automate things and ended up quitting ME to pursue not only something I find fun/interesting but something with a lot more potential due to remote-work and salary, this video pretty much sums up my first 4 months of "official" learning. The Dunning-Kruger effect was strong since I've always done some form of coding for the last 15 years, but then diving into the real world of it I found that "holy crap I know nothing" and the stress of it hit. I've just been plugging away and have found machine learning to tickle my fancy because I like math.
In my senior year of college as a fine arts major. Now realizing my mistake and am going to learn front end dev along with graphic design. I have a tech background so I should be fine. Wish me luck!
I learned a shit ton of JS and React and my first job ended up using Python and Django for web development, luckily i already knew a lot of web concepts and python, so learning Django was a piece of cake, i still use it for personal projects, and its a fantastic tool to learn web development too.
Even if the tools/languages change in the coming years, I really appreciate videos like this. Especially for folks starting down the CS path. The most important message, however, is to continue learning. As a kernel developer for many years, I've been extremely lucky that C is still relevant. Not sure how many years it has left, but I could definitely be in a risky spot if C fell out of favor and I wasn't trying to learn other languages on the side.
@@themore-you-know The "how" is simply when somebody designs a better [thing] and people adopt it. But for this example, if you research something like "shortcomings of C", one could argue that a new language with C's pros combined with fixes to its shortcomings, you'd have a better [thing]. Then people may massively adopt it. Does Rust fill that spot? :shrug:
I am concerned with the lack of new C devs. There's so much written in C that needs to be maintained, but I dont know a single person who's trying to be a maintainer of some of these critical projects (kernels included). It might take a true successor lang to break through to get a sizeable pct of the masses into systems development. Maybe, but I dont golang is really it, and rust is simply too complicated for alot of the embedded stuff C is used for. No idea what the future holds w.r.t C library maintainers.
@@andrews8733 I'm learning CS and really like C for the way it's kind of intertwined with the computer's hardware on a deep level. Maybe it'd be worth to pursue the way of C lol
started with C then learnt C++ followed by a bit of web dev and now currently learning python(too easy tbh). Learning C made it a cake walk to learn every other stuff out there. I should recommend this pathway to every one new out there as it helped me out a ton. Hope this helps :)
I'm doing data science in cse. Should I also learn like this? And also I'm doing worst in the theory subjects also currently in 3rd year. Thinking of dropping out.
@@TheVirtualArena24 I would recommend you to look up the job market, if you don't like all the statistics you can go for something like a data analyst job. It's more about the data visualization and less math focus. You don't need to learn C first. It's something will help to understand how a program language works, but the hardest part of data science normally is not the programming
Should I start with SQL then Python? I'm a graphic design major. Finished HTML and CSS. Copied and pasted Javascript. The famous designers use Python to make fonts. But I like data driven marketing.
nothing pisses me off more than seeing someone name a variable with the first letters of what it represents, i have no clue what avd_samp means and now i have to go find out, waste of time, and any IDE worth its weight has auto complete so make a variable name as long as reasonably possible if you need to
Thank you so much! As a complete and absolute noob with 0 coding knowledge, I'm trying to learn computational chemistry and it's been super overwhelming. The road maps have been so helpful! Need to see if you make more videos on the machine learning/ AI aspect haha
I am missing a few things in this video. 1. where is the basic idea that you should make fun while programming? Don't try and make a new os, but start with something easy that gives you a good feeling. 2. I would say that is important to try different things and dont be afraid to quit something if you dont like it. Furthermore, great video, I am a great fan!
Number 2 is really good advice, knowing when to drop something is really important because sometimes you really just need to take a break and start fresh again. Even though you may think you just wasted time, what you're really doing is priming yourself for round 2.
Also it misses the point that you don't need to create COMPLETE thing to learn. For example in web dev - you can connect to existing online backend and use something like Bootstrap instead of writing css and do not care at all about those things and learn them later.
I started with Swift Playgrounds on an iPad, which really helped me get the concepts of programming (nowadays I know most major languages). I am not a huge Apple fan but this app really needs a shoutout!
@@biglexica7339 It‘s hard to define “knowing“, but I could write pretty decent programs in C(++), Java & JavaScript, given internet access I could figure out Kotlin, Rust and PHP after a while
@@benonardo I mean given internet access you technically know all of them by knowing I'd say googling ~50% of a language's features when working on something
I think starting with the frontend and and then progressively involving backend when you need data or authentication in your frontend is a good approach. And then finally when you get it working locally on your pc, you need to start thinking of how it could be deployed in the cloud. It takes years if you are new to programming.
I’m a CompSci student, and a friend of mine has a saying: “You can’t throw a stone on campus without hitting a CompSci student, but 90% of them are freshmen.” The hardest part is keeping going. I’m heading into my Junior year this semester, and I feel so lost. But I ain’t giving up. Let’s get this crap done, fellow learners. We’ve got this. Never cruel nor cowardly. Never give up. Never give in.
Not going as good as I thought, but still there. Finally finished school and currently looking for a job, but it is kind of hard to find a job with only an internship experience, not giving up, wish me luck
Also, deploying on the web is another interesting step. Just deployed my first web app and it wasn’t as smooth but it’s another piece of great valuable knowledge
@@duztv5370 I would recommend what I’ve used Railway app It also has plenty of demos to deploy in seconds, and I’m not exaggerating. From his videos I would recommend one about building your own svelte chat with pocket base He used Linode to deploy it I tried it, just wasn’t as easy as Railway from my experience (mind you I’m a noob)
I knew there was a good reason Harvard's CS50 starts with C lol. It kinda feels weird using high level languages when you learn to code at the lower level first though.
I focused primarily on c and within a matter of months, of writing my first line of code, I got shortlisted past 70% of candidates for a job interview based entirely on my explanation of how I would have answered the coding question that every candidate got sent. I didn't even write the code - the best way to do what they wanted was to use a hash table and, as gptchat just explained, it can take a moment to build one - we only had half an hour to answer the question so I tried it in java, after wasting a few minutes trying in C, and only got about half way through due to my unfamiliarity with the language. Starting with c seems to be fantastic advice; I'm getting my ass kicked but I'm also learning A LOT! It makes a lot of high level programming seem quite easy.
Thanks a lot fireship As a beginner programmer you motivated me to stop programming and sell all my electronic and go to the east and start a farm thanks a lot 👍
I found it depends a lot on what a type of person you are! Some learn stuff by reading books about it. I never enjoyed that and always wanted to get some immediate feedback. Open up the webbrowser console and get cracking is one way to do it, Another (my initial way) is coding in a 3D app like Blender, Maya, 3DS Max. There is also ProcessingJS playgrounds on the web that are nice and interactive 👍
The Compute Module 4 and the Pi 4 board are the most desired, the Pico/Zero 2W are fairly easy to find. If you need lot of power get something with the RK 3588 SoC.
@@ristekostadinov2820 True, Zero W (or 2W) could work for beginners, but I'd still go for an Arduino instead of Pico. More support, plus I haven't seen many Picos that come with soldered headers.
@@prvashisht You are right the Zero 2W havea lot of power for micro controller lol (512mb ram and quad core processor). Picking up Arduino will force you to find ways to write more memory efficient code since you play with KBs of ram and storage.
This is a perfect summation of literally everything I've learnt in the 4 years since I started coding. This is very well made, and new programmers should absolutely watch and understand this!!!
Always good to have a project in mind and find the tools you breed to get there. It keeps you motivated and feels more fulfilling when you achieve what you set out to do!
Thank you for this video. I'm interested in Hardware, machine learning and low level systems. I didn't know where to start but now it's a little clearer.
Great video man! I worked as a software tutor for three years and this would have been a great video to show my students! Very well thought with lots of truth. I especially liked the bit at the end about how it's okay to feel overwhelmed and not being an expert in any one thing. Keep making the great content! 👍
Tip from someone who went the prison route: The only potential way in which C isn't self-torture and a complete waste of your time is if you learn it together with ASM, and regularly read your compiler's ASM output. Makes it much easier to grasp the underlying CS concepts and you get to know the whole compile/link/debug toolchain, which definitely will transfer to the higher-level languages you'll invariably end up using.
"and you get to know the whole compile/link/debug toolchain, which definitely will transfer to the higher-level languages" - can't sound more false. Don't justify wasting your time. If you use high level languages(Javascript, Python...), you certainly 100% don't need to know or understand a single thing about complile/link/debug toolchain or any asm low level stuff. Not a single thing will help you, just a waste of time(for high level languages). I see that people lately think it sounds cool or something. I feel the "Yeah I learned C, Assembly and reverse engineering, I am now better than you at Javascript" energy here lol.
@@twothreeoneoneseventwoonefour5 try it first maybe, learning C will force you to learn how data structures and algorithms work, plus, in languages like JavaScipt, knowing how memory works is very beneficial considering how shitty its GC is (unless you don't care about perf/etc enough to care, but point is, that learning C does help a ton in various fields) * as someone who mainly did JavaScript TypeScript for 2-3 years and is now writing toy programming languages in C
@@evil_witch I already learned c and c++ in the past, but not that much(around 50 hours total on my own(self-learning), got well into theoritical advanced stuff). I understand what you are *trying* to say, but I am still completely sure that it is all a waste of time for a high level language dev. If you want/need to learn how the memory works, how different data structure work, learn it, but there is no merit in learning low level languages JUST for that. That is comparable to *professionally* learning design as a mere frontend programmer. 95% of the time you will implement what you are told to by the actual dedicated design team, and the other 5% you can just learn yourself, without having a design degree or extensive 3 year UI design training. In short, you guys are just messing up the priorities. If, for example, it took you 10 hours to learn something in low level, and for example it give you 20 points in that specific skill, you will have only 1(!) point carried over to high level. Now learn something in high level in the first place using those 10 hours, it will CERTAINLY give you AT LEAST 10 points, if not the same 20. It simply doesn't make sense to compare that and say that "it will help you!!", when you were just better spending 10 times less time learning it more efficiently in the language/environment you need it the most. Of course if you want to learn low level, I am not stopping anyone, but I am just saying that "learning low level will help you in high level" is just a straight lie.
@@richiekho8938 this is not really 2020, you should have built it in js, transpiiled it to c, then used clang to compile, finally, read the assembly output to optimize it. This is the way : D
Honestly, this is just a great video for perspective. I have a CS bachelor's degree plus a full stack web dev job, yet I still feel lost some days. My tasks are often pretty easy to do, like adding a new function with mostly JavaScript or fixing an error that usually amounts to something silly like "the specific variable wasn't nullable so my backend would fail if it was null". The issue is that I'm great at understanding what a handful of components do, but I flounder with how to implement some big level change or, especially, a new project from the ground up. I know I need more practice with my foundations to have a more long-term career, because while I'm a good worker bee that can knock out menial tasks, I'd probably be the first to go if there were cuts (which I'm thankfully not super worried about rn since it's a pretty comfortable company with government contracts but still, it's not nice to know I have the least impressive skills on my team, though I'm also only a year into the actual work force)
It's called "exercise", there are great health channels on it... also socializing videos... (joking aside, as a programmer I think the day to day life is always the same with everything right? maybe just... programmers are usually passionate and spend some times on side projects in their d2d life too? idk man... the question seems wrong to me, elaborate further.)
I should say, I am quite enamored with Al Gore Rhythms. They have a certain elegance and precision that I find deeply appealing. I could spend hours lost in the intricacies of a well-designed Al Gore Rhythm. It's almost like a puzzle to be solved, except the possibilities are endless. I find them endlessly fascinating, and I am constantly striving to improve my understanding and skills in this area.
Great video! I like the C / C++ route to start off. After that almost everything builds ontop of that knowledge and comes to you naturally... Unless you want to to do some Haskell or Prolog... 😵💫
My university is making me go that route while studying electrical engineering. I'll have to learn Rust on my own though because they haven't caught up to it yet. I'll have to learn some others down the line as well, like Matlab and Labview, but they're not nearly as exciting for me as Rust.
Best video I have ever seen. It has given me an insight of the madness am about to release onto myself hence it was HILARIOUS! Thanks, and for this, am following ya!
I loved the C shoutout! It's a language that can give people good lower level perspective, which I feel is often badly needed for many high-level lang oriented developers, producing overly bloaty software.
Choosing to major in CS years ago was the best decision of my life, honestly. There comes a point where all that knowledge sludge takes shape and suddenly everything clicks. It felt like that scene in the Matrix when Neo finally sees the Matrix for what it truly is, but maybe that was just a hallucination from years of sleepless nights lol
@@kcnl2522 the more awesome the project, the more math is involded. programming is math, and doing math in a mathy way is nothing but abstracting away the programming language to more efficiently think about and solving problems. So if your algorithm is really awesome, it needs math to be able to think about it. But ofc some ppl apparently also have a good time solving the latest puzzle posed by web standards of how to draw a button despite the many artifical road blocks set in your way by the design constraints given to the web api developers.
@@kcnl2522 I'd say it depends on the field you'd like to get into. Web development generally doesn't require math, except on some niche cases. What type or level of math you need varies from field to field as well. For example, in hardware you might need to know about some physics like electric currents, maybe pressure for moving pistons, etc. I'm in the data science/machine learning/AI field, so I know some linear algebra and calculus. Some people get into advanced database engineering, and they know relational algebra, whilst other people in the advanced functional language sphere learn lambda calculus. My advice would be for you to take it easy, see what you'd like to explore deeper, and to remember that the most overlooked skills that a computer scientist needs are creativity and patience. In CS you never really stop learning, so it's okay to mess up, feel like you don't know all the answers, etc. That's what the internet is for. Eventually you'll be so good at coding, it'll feel like the lines of code are just lego pieces that you're using to build anything you want, you'll see. Good luck on your CS journey, and when in doubt, use stack overflow!
@@nosferatunoir2740 I’m actually gonna *major* in data sci, haha, thanks for sharing about your own journey because it looks like I’ve got quite the challenging/rewarding one ahead too
"There's no guaranteed step by step program." Agreed on this one. I started out with C++ as my first programming language in college then moved to Java as part of my mobile dev course. Then, PHP and JS (with jQuery) in my 3rd year all the way to my first 3 years of professional experience. During my first work experience, I learned python by myself for basic scripting then started learning Django and Vue in early 2021. In 2022, I got another job where I used React and Ruby with RoR for our internal app. By 2023, I've already learned TypeScript, some basic Lua for NeoVim, Nuxt (for personal projects) and Next (made contributions on open source Next projects), a handful of other technologies, and I've started learning Rust. It's been a wild ride so far and I feel like things will get wilder this year.
Side note not mentioned: flutter does not only target mobile, but also can target dekstop (MacOS, Windows and Linux) and web, might be worth to mention that in the desktop section in particular, since it's exactly the same target as electron and Tauri
Sometimes I think that coding is easy and anyone can learn it. This video really brings into perspective how much i actually know and how much i have actually suffered hahah. Its easy to forget all you have achieved.
Huge shoutout to folks who use C++ to earn some sufferings like me. All the C++ devs leave a like below Btw: there are legends who slay deep learning using C++ , geniuses like compiler creators. Awesome video Jeff keep up. This created a vortex in my head like a toilet flush. Thanks
@@Soulis98 nah men, it's pretty awesome. Learning python for a Data Science class? Easy. Learning Java for programming classes? Yep. Learning some Javascript? Give me that. It became so easy because all the HUGE apps I had built for some home stuff gave me sooo much knowledge on complex systems that I became incredibly fast at consuming documentation and developing clean code because of having very little server capacity to deal with
I too haven't met a great engineer that hasn't come from the Fortran/Assembly/C/C++ Pack. These people understand what computer programming really means. Start with Python, JS and Co. and fool yourself into believing you are a Software Engineer. A coder only, at most
There's also C++/Qt option for application development, and it's a popular choice on Linux if you also use KDE Frameworks. And QML(kinda JS)/QtQuick + Kirigami, if you're a youngster.
I myself would REALLY love to get into video game development! This video honestly helped out a bit with what programming language I need to learn and what engines are best. Thank you!
I started learning python because i wanted to participate on a project that my dad has with IA. I always hated maths and then I found out this area is full of it. At least now its been a little easier to understand since now is math applied to real situations and not just some equations that I will never understand what they are for
Bro im not gonna lie, that was the most informational video that i could not understand in my entire life, and by the way im not a coder or a programmer, wanting to get in to it cuz i got alot of free time
Recommended backend at 1:45 - check out! Good advice in the end: to get a good career in coding: Specialize on one thing (most likely a great advice, which I've heard from many different sources); don't forget this.
Another key thing - All coders, no matter how experienced, end up googling for answers. Don't fall for the illusion that coders retain all the knowledge in their heads.
asking correct questions is much harder than finding the answer once you know the question.
Another thing .I once was looking for about 4 hours or so for a solution to my problem. I found the solution by switching the position of two words in my sentence. I was like "da fuck?". So rephrasing is definitely something you should consider when looking something up
retaining information is a lot easier than repeating a google search every time.
@@-karter-4556 Only if you need that information frequently. (The amount of data also plays a role. The less you need to memorise the more advantageous remembering becomes.)
I keep a Notion dictionary with google-able questions for multiple topics..... Yes, I meta-google
"you don't have to be smart"
oh thank god. There is hope for me.
i also able to see a hope
Have you learned code yet?
Me asf starting out my journey. Thank god theres hope
Do you need to be smart
@@corpingtons no just need strong willpower why to start coding, also need curiosity for different exploration in that thing
"Whenever I learn something new, something else falls out on the other end".....
So true. You and me both bro.
Bud Bundy from Married With Children, made the best anology.
"When you pour a pitcher of knowledge into a shot glass of s brain. "
include me bruh
Im like you as well, but only second part.
I'm in my final year of university studying computer science and getting ready to take on my final year project, and I feel like this would be a good time to start learning how to code.
Update: I got an A on the project.
No shit?
@@buak809 its a joke dummy
@@buak809 No shit?
No shit?
No shit
1:08 Web Dev
2:51 Mobile Apps
4:25 Hardware
5:13 Gave Dev (Game*)
6:05 ML
7:04 Low-Level Systems
W
W
W
Gave Dev (Gave*)((Game**))
And not 1 minute of the video is about how to learn to code. its exclusively about frameworks. Thats like learning how fast all the cars can go without ever learning traffic rules.
Honestly just write code without all those gigantic nonsense frameworks attached.
the amount of horrible practices you have to unteach junior game devs that only lerned c# through unity is immense. they only learn how to press the unity buttons and unitys bastardization of c# without ever learning how to write actual free standing c# code.
man in all seriousness this channel is super underated. ive been watching coding advice vids for years and these are the most straightforword answers ive ever seen.
As a fellow “coder” I can confirm everything but the back issues. Working out definitely helps to resolve that.
@unidentified Key word "competitive" you may of been pushing your body too far.
@unidentified you can't expect to push your body for an hour each day when all else you do is sit on your ass
What if you're 6'2+? Nothing can stop you from getting that back pain asap lol
Show-off
Yes!
Remember: give yourself permission to write ugly code. It's just a first draft. It can always be refactored and improved upon later. Also this helps over-engineering your code / aiming for 'perfection' on first try, which usually just slows the development down. Edit: better advice in the replies
i think it can be more useful to break a problem into high-level steps first and organize top-down to keep things cohesive. getting used to writing messy code makes it harder to debug, which ends up being more painful that initial organization.
@@mcsquidinc.4648 Great point and great advice. Perhaps allowing oneself to write messy and ugly code is not so much a good idea, but it's rather the point of not holding oneself to perfection in the first go. I tend to freeze up when thinking of the "BEST" way to implement something and worrying more about if there's a better way to approach what I'm aiming for. "write ugly code" doesnt really fit that point concisely looking back at that comment
I agree, start early, start ugly! There will be many, many drafts. (Use Git, Use TDD) Most important is to start. Take pride in your first steps, no matter how unsteady they may be. It's an iterative process, and you'll be painting over, and revitalizing your past work. Make a small step towards better, rinse and repeat.
it's been 6 years and 3 jobs later, i'm still waiting for that "later"
@@256k_ That's the issue. Obviously, trying for perfect is probably going to result in the program not being completed ever, but assuming that you'll come back to it is a big assumption. Especially if you're being paid to develop the code, chances are that once you've got something good enough, that you won't be paid to go back unless there's a problem that arises later on that's bad enough to require a fix.
For those who want to go the C route, I recommend two books:
"C: from Theory to Practice" by Tselikis and Tselikas. It's fast paced and contains tons of solved and unsolved problems.
"C Primer Plus" by Stephen Prata. Has fewer exercises but more through explanations.
Thanks a bunch. God bless
Thanks a bunch. God bless
THANK YOU!!!
These are real books right ?
Also "C: A modern Approach" by K.N. King is worth it with good explanations and many exercises and projects
My advise on programming is learning what does it (whatever tech/tool you're leaning) do, and why is it important/needed. Programming is building with digital legos. Once you really understand what you're building and why you are building something, the questions on "how" will naturally come to your mind, thus google will become your best friend.
So True ✔️
* ChatGPT
I like that analogy
Up until recently this was great advice, now the best way to start programming is to just learn effective communication with ChatGpt
@@turolretar Good luck debugging its code if you're gonna ask it to write anything more complex than a small snippet. It is still a work in progress software and the legality of its use is uncertain.
Fun fact: If you chose the masochist route, the EXP gained will have bonus multipliers which allows you to apply for jobs that requires more years of experience than your age or the age of the framework they specified.
lol what do you mean by this ?
@@couch2flag learn assembly and code your own coding language
Or you could choose something like Security, and learn everything.
Finally, I thought this was a glitch
my man spittin facts
One of the greatest summaries of the suffering. Trying to get into it now at 32. But man, the potential I see in coding... Thank you for your hard work in this
I'm 33 so I can relate! 😅
I’m 25 and I’m wondering if I should do this as I got fired yesterday from my blue collar job lol I hope you guys are still into it.
It's ok I'm 47 and getting into it myself as well. Since my son is grown and active duty in the Marines it's time to learn how to code and start making the big money. For me I am not worried one bit because even if I don't get to work for a big company I know I can still do freelance work and also build automation bots to promote affiliate links and make money in multiple ways. So I will be set either way once I get it down on how to do python and javascript. Of course I will apply for the big companies but if it doesn't work out I won't be worried one bit.
Why are you trying to get into coding at that age? I don't understand. I would really like to understand, please. Thank you.
Are you asking me or somebody else?
It's great to see well-respected developers recommending prison. I thought I was the only one.
:)))
As a beginner programmer I hope I'm just missing some jargon here
@@MrWeebable you are not
@@MrWeebable 'Doin Time = More Focused Time To Code/Learn! (in a cosy, distraction free safe, free environment)
@@commentarytalk1446 Prisoners don't get that kind of free time. Slavery is still alive and well in the prison system and was expanded thanks to Jim Crow Joe Biden's '94 crime bill. We aren't 4% of the world's population and 20% of the world's prisoners by accident. If you don't work you get put in solitary. US prisons are the largest forced labor camps in the world, not exactly conducive to learning programing.
This is why C# and JavaScript are great languages to pick up just for the sheer amount of stuff you can do with each of these languages and their ecosystems
I hate to admit it, but Python also.
I hate C# and the JavaScript ecosystem is a hell
@@adibrahman9297 why do you hate C#?
I think the best advise comes at the end where you need to pick one thing and get really good at it. Find your niche and practice picking up new things.
c# for desktop and mobile apps
c++ for DSA
javascript for backed web dev
python for FUN
The embedded road map that will get you hired:
1- start with arduino. Arduino IDE, some small project there.
2 - after you feel comfortable with it, drop the Ide, find the PDF for your chips data sheet, and use atmel studio and a Jtag Debugger. Code in raw C. Your project will run way faster without the arduino overhead, and you'll learn a lot more about how MCUs actually work.
3- learn KiCad. Make a PCB for your project.
4 - grab an STM32 board. They all run off of the same basic Arm architecture, and have way faster speeds than your average atmel chip. They are a little more complex, but If you're used to reading atmel datasheets, you'll be good.
4.5 - learn arm ASM, and how hex files work. If you're good with C, it'll help you depend your understanding.
5 - build a project around a GHz+ NXP chip, or bare metal programming on a Raspberry pi. You'll learn all the considerations you have to take into account working at very high clock speeds.
After this, with all the extra stuff you'll learn along the way (serial protocols, external chips, HIDs, ect) you will be unstoppable.
This is pure gold. It took me 2 years of research to get to the same conclusions that you summed up in this vid. Now I just need to finally go and learn something...
Making plans is easy and calming, working is hard. I know this from experience :)
@@Sovereign589 My friend told me that if you want to make a plan, make it short and simple and make sure it's something you'll do soon. Otherwise you're most likely not gonna do it.
Stop talking sh't and show me the code. Just kidding, it's better if you plan less and finally start what u want
2 years 💀💀💀
@Caston Emma agree. It's a pain in the ass 😩
Step 0 is the most important advice I think anybody can have when first starting out. It's always what I tell people when they first get into coding. Create your own backlog of reasonable projects (emphasis on reasonable) that you can create as you build your new skills. Going through endless tutorials is boring. Building a project you're passionate about is fun, which will make it more memorable and help you retain all of the information you're taking in. I recommend staying away from the numerous frameworks and libraries until you have a strong foundation in the languages you choose for your projects (if they are actually "reasonable" for your skill level, you wont need them anyway). Dig in to that stuff on subsequent projects where the goal isn't to "learn to program" or to "learn JavaScript" but instead the goal is to "learn React" or whatever framework is the objective.
Everyone is different though. Know thyself when it comes to learning. If you like a chaotic approach too, then open up all of those boxes at once. I like a structured, 1-by-1 approach, personally. Most importantly, have fun!
This is true, I gave up learning to code many times by getting stuck in overly long and boring tutorials and courses. Most I learned was when I just attempted to build something of my own and googling stuff along the way.
@@_moonmoth how do you come up with a project idea?
This is the trap I've fallen into now. I'm studying for an IT diploma, and my course is theory based, so I'm figuring out the coding bit on my own. The thought of building my own projects is pretty intimidating tbh, so I've just been following along tutorials
@@KatyVLOGS12"Hmmm, I wonder how hard but cool would be if I make... err... a restaurant management app, that... facilitates the work of managers and give the ceo all the helpful tools that he might need"
It goes somewhat like that, you just think about something random that could be considered useful and do it
5:55 me who started game dev with unreal engine 5 its been 3 months its going great
Keep going, pal
well its been another 5 and i have a question lol, 1. how did it go and 2. if it went well what do you recommend i start with for someone that wants to start learning unreal engine aswell! i have experience with Java and Python, im in my second year of Uni, would very much appreciate your reply and reccomendations.
@@zrashad you cannot learn unreal engine 5 by your own you have to a buy a course i learned that hard way its been a 8 months its a hell for a new developer like me to get it all to together use Udemy you will be succeed
@@zrashad just Buy some udemy or any other course it will help a lot trust me
Perfect timing
I'm feeling so burnout rn and this banger drops.
Thankyou Fireship.
Finally, I can get a career in programming... And now I just have to suffer!
your suffering will end as soon as Klaus Schwab will replace you with AI and you will be a mindless consoomer drone with 100+ genetherapy shots.
Maybe the true developers are the friends we made a long the way.
@@Soulis98 true
🤣🤣🤣🤣🤣🤣🤣
Here’s something for you. I cannot code, never learnt. I picked up chatgpt messinga round with it asking thousands of questions about coding, what does this do, how does this work, what is this error, and after 2 months I have built a (very crude) web app that is a job management scheduling system for my services business I do IRL. Authentication, flask backend, react front end, hosted remotely. Chatgpt is a game changer. It will either completely replace coding eventually or drastically bridge the gap between senior and junior devs
I have so much respect for programmers of all languages. I started going down the web design path in late September/early October and the amount of knowledge required is absurd. I am currently struggling with JS and It feels like I’ll never be able to learn it but I don’t plan on giving up. I encourage anyone who wants to give coding a try to do so.
The key is definitly to give your self some time, you need to go through so much information, you need to give your brain time to connect the dots. Today you're learning the basics of js in a month or two you're learning about api's, databases, servers and all the frameworks and platforms that come with it. You will soon be able to have a grasp of what's out there and what it's for and then you can focus down on frameworks and technologies that interest you.
yes definitely go easy on yourself (and dont be afraid to ask "stupid" questions). i found that learning how programming and computers work was what i call a "nonlinear" process. if you want to learn history, read history. sure there are a whole lot of other things to consider in the process of understanding history but, compared to learning how to program the basic process is to step through the events and gather as much relevant information as possible. you cant read, "the Pinkerton gun thugs and strike breakers opened fire on the striking laborers in Ludlow, Colorado at the behest of the US gov't and capitalist tycoons before walking through their makeshift encampment and setting each of their tents and shanties ablaze - many times with women and children still alive inside." and be terribly confused by the actual events that took place. this particular event is incredible and raises a million other questions, certainly. but as far as actually understanding the event, what took place, there is nothing to do but step through the historical record... contrast this with programming... (oh and yes, enjoy my planted historical plug about a very, very important event in US history)
programming is "nonlinear" in the sense that, when you are first starting out, completely naive to what the hell a computer does or why and how programming languages do anything at all, you can go through long periods where it seems like you have accomplished absolutely nothing and have made zero progress. then, one day, out of nowhere, when you are absolutely convinced of your failings, something clicks. from the abyss comes a flood of understanding. you thought you were nowhere and then all of a sudden you are everywhere.
this is what i mean by "nonlinear". there was no incremental steps along the way to help assure you of progress. there was nothing and then everything. this is why you remain steadfast in your efforts so long as your goals of learning how to program remain your interest. i promise you. you can learn the dark arts and once you do youll realize you can learn anything!
oh yeah and dont be to impressed or intimidated by the amount of knowledge other programmers seem to possess. i can assure you that they do possess quite a bit of knowledge but once you clear a few learning humps you'll find learning new things to not only be enjoyable but that as you learn more and more the process gets easier and easier. that is you "learn how to learn" and given that the subject matter of computer science and programming has a whole lot of overlapping parts learning one thing leads to (or "sheds light on") other things.
the trick is to get over those initial "learning humps", keep at it and you will, i am 100% certain of this!
Been programming since I was 12 or so, if you can count what I was doing at 12 programming. I'm in my fourth year of college for it now - here's my advice:
Never be afraid to google something you don't quite understand and look for a different source. Sometimes it just takes the information or example code being written in a different way for it to make sense. If you're REALLY stuck - taking a quick 30-minute break to simply just go on a walk or grab a snack does wonders for letting information sink into your brain. Sometimes it takes a minute for the neurons to connect together in the right way. Taking a walk, even only a short one in the pouring rain/snow, really makes things click into place. It gives your brain a break and time to (importantly) _not think about the problem_ and is a fantastic tool for learning anything, not just programming.
Another bit of advice - if you're having a horrible time debugging something, you can't find an answer online as to why it's doing what it's doing, and you're truly stuck - explain, out loud, your code to some sort of inanimate object. (People work too, if you're embarassed to talk to an inanimate object. They don't have to understand programming... just willing to hear you spout computer wizardry at them)
It's called "The Rubber Duck Method", but it doesn't really matter what you use. Explain line-by-line what the code is doing, and what the problem you're having is. Eventually, you'll say something so profoundly "captain obvious" that a cartoon lightbulb will appear over your head with a sign that says "I'm with stupid". If it doesn't happen, you probably either didn't explain the part of code that's causing the problem, or you just need a longer break.
@@TheKd8lvt Thanks for the reply, dude. I'll give your suggestions a try the next time I'm frustrated/stuck. I'm definitely not too embarrassed to talk to myself or an inanimate object hahaha. Thanks again and good luck with your schooling.
@Females are the extention of Jews "Communism is a disease that is genetic and is cured by a bullet" is EXACTLY true. the evidence of it being true has been displayed and demonstrated everywhere throughout the history of the 20th century. The Nazis cured it. The Stallinists cured it. the Spaniards cured it. and the US cured it all by just murdering all of those opposed to capitalism... (see. Stalin's take over of the workers revolution, the exile of Trosky and the great terror which targeted for genocide political opponents. see. Nazis who in the shadows of a failed workers revolution in Germany joined forces with the Business class to put down, violently those decent citizens of the working class looking to improve their society a livelihoods. Spain? Franco. Italy? Mussolini. the US??? Vietnam, Central & South America, Libia, Cuba, Haiti, Europe (post-WWII)... actually come to think of it, basically everywhere!)
22 years ago I started with VB4 from a game programming book and made a couple games, years later I made custom MySpace profiles for a while, then I built a guitar app in C#, at some point I made a really crappy skateboarding game in darkbasic, I rebuilt my guitar app with js and learned to host it online. Then, while working 7 years in a customer service call center, I wrote several apps for my employer and used that portfolio to shoe onto a web dev team. After hire, I learned SQL, React, Angular, and AWS really fast because it turns out 7 years of business knowledge makes you more valuable to the team than even the senior devs.
It’s a very good guiding video for an interested person who haven’t start yet , in my opinion this is the best video i have seen in this context ,it becomes rare to see a content creator who take care of the quality at this point , continue ❤
well said my friend
Thank you so much for this. I was completely blank when I wanted to construct a road map for myself for machine learning but never had any idea about it. I was completely stuck and wasted my entire day being depressed and being hopeless. You've given me a path to follow. Tysm
I would say that his video has had a completely opposite effect on me. Seems like it was made more to jerk senior programmers off by showing them how many things they know rather than actually helping newcomers. I started coding a few months ago and if this was one of the first videos I was shown about coding I would have given up on the spot.
I feel I can give some encouragement words to both of you. I started programming something like 2 years ago, I got a job 1 year and a half ago...
Just wanted to say, times where you feel discouraged are gonna come sooner or later, but believe in yourselves, tell yourself you can do it, and you'll eventually will
Fun fact, I started programming in C, and eventually got to a point where pointers (if you don't know what they are, don't worry you'll probably won't need it) didn't annoy me too much
Btw, I know work mostly with typescript and javascript
@@MrFoodMan66 you can't just tell someone exactly what they need to know, there are so many options that you just have to figure out why/what you want to code and then pick the appropriate tools, there's obviously a huge learning curve when it actually comes to learning those tools but to be a programmer you will need to learn them, nobody can expect to watch a video called learn how to be a programmer and walk away from it knowing exactly what to do. It's a legitimate profession that requires high skill and a fair bit of knowledge, this video gives someone a laundry list of jumping off points that can be easily researched/studied on their own, because at the end of the day programmers will have to constantly learn/study throughout their entire career, if you can't do that then just give up now :) happy new year
@@MrFoodMan66 mentality diff tbh
You're absolutely right that learning C as a first language is amazing to get strong basics. You're never surprise by the weirdness of passing by value/reference when you know pointers well. After you learn such a low level language, anything else seems like a walk in the park.
Doesn't help you understand an uncommentated, confusing python codebase where any variable can be anything and defined anywhere.
Literally spend a week of my thesis with trying to figure out what's what.
@@MrCmon113 the best part in python and somehow bad, bc when you get used to it other languages will look hard or complex
My father teaches intro to computer science classes at his college, and that’s basically his philosophy when teaching students C++. There’s less abstraction and you have to do more manually. Once you know that, everything else seems easier by comparison.
The beginning of my journey starts here i guess
I watched this video 6 months ago when I was starting to get back on coding... I took the Data road myself and just landed a job... I agree with everything you say! and now I feel much less anxious watching it
Can you elaborate on it?
Learning C can really set you apart from other coders. The foundational knowledge you get from understanding how memory and pointers works under the hood as well as how to implement data structures from scratch really helps to understand the different trade-offs in other programming languages.
Learning C++ on the other hand is generally not worth it unless you need it day to day. I eventually did loop back into C++ after 25 years coding in many other languages only because I wanted to go deep on Unreal Engine.
well in unreal u dont really write c++, u write Unreal's c++
@@shu3684 Yeah that's somewhat true. In some ways it's harder because you're kinda learning both at the same time. A few years back I did some projects in C++ using Ogre3D, that was fun. My general approach is to learn whatever I need to learn to do whatever I need to do at the time. After many different projects using all sorts of languages and frameworks adding another one to the toolbelt isn't particularly scary anymore.
I want to learn C++ for unreal but I find it quite difficult for a beginer to programing. Should I start with something easier like python?
If I learn C, do I need to need to learn C++ afterwards in order to see the benefits of learning C?
@@peacemaker7188 Depends what benefits you're looking for. For me, the benefits of learning C are about understanding the principles of memory allocation, pointers, data structures and how programs can be written without classes and other object oriented design semantics. Almost all modern languages hide these things away but really, they are still there under the hood. When you have a good understanding of the foundational layers that modern programming languages are built upon it makes a lot more sense when you run into strange cryptic errors.
Learning C++ on the other hand will probably only be beneficial for writing more C++. If you're not actually going to be doing that day to day you'd be better off focusing on higher level languages and building real world applications.
0:00 purple tunnel
Your humour is a nice touch to your information. To make Ur viewers learn and laugh us a great skill. You are successful in many areas, TH-cam, coding, business.
Which combines a lot more skills.
Inspiring.
You must b quite a personality.
I love how all clips showing a game engine shows Godot only, probably to not download gigabytes of other engines and login to their accounts just to capture seconds of footage.
That's also a good reason to use Godot in general. Don't underestimate the joy of lightweight and its effect on productivity.
Me, blissfully ignorant from enjoying Godot for 2 years:
"Amma install Unity, see what its about..."
4 hours of waiting later...
"any day now..."
@@themore-you-know 4 days later "Uhm... where do I click to do something x again? hmmm"
He forgot Defold
oh? as a unity beginner i thought downloading 15 gbs of data all day and setting up unity another day is normal in gamedev
Yeah I am gonna go for "Gave Dev", Sounds fun!
Gae dev
It's hell, I like it 🤠🤠
One thing that he said but I think it's important to have fixed in your mind is the 3d modeling part, is VERY good to know at least the blender(a 3D modelling program free and VERY good, even better to me than some paid, with an enormous community) basics to create a model (even if the end result is bad) because 3d is not like an PNG that you simply put in your screen, and is done, it has a lot of areas that are important for you to understand to communicate with the artist, the raycast part is not that important because the engine make the work for you
Thanks, this has been more useful than I thought. I was the one that went straight to the biggest guy in the prison, which in my case, was C++. I just kept studying the language without any solid goal, and this video gave me some broad image of my options. It's like u brainstormed all the keywords in my head. Thanks.
From today, Gave dev is my career path
Prepare to be worked like a dog for minimum wage, that's all I'm gonna say.
Your wallet might say something else
I regret the days I've spent not learning Gave dev.. I shall join you as well..
@@Adomas_B r/woosh
and so he Gave his soul to satan..
I'm honestly so thankful for this channel, I'm currently invested in becoming a programmer, and the humor that is put into these videos gets a good laugh out of me and makes me excited to continue.
im already learning html and css but this entire video sounds like straight simlish, so i know im headed in the right direction
howdy?
I have started learning how to code a year and a half ago. I started on JS, but i really found it frustrating since i wasn't not really interested in working on websites and if you wanted to anything more complex it would be too frustrating without a framework, but i did learn the basics. Then i took a break, tried making some games with the Godot engine. It's really fun and i still dabble from time to time. Then i tried to learn some C++. I learned the main basics and it was fun, but again making an actual project is a whole different beast. It is so hard to go from making some mundane program to making something that is actually something you would use. And i am still alienated by the job market. I am not sure is there any chance of me getting even a entry job position. Most companies want you to be an expert. It really makes feel everyone gets their job through nepotism, but that could be not true.
I think being specialized and having a portfolio built around that specialization is the way to go if you want to get employed. If you have a bit of everything but a whole lot of nothing in particular then youre less valuable for any one specific position.
@@lazerhawk2192 The "you have to network part" doesn't give me confidence at all. It just comes down to complete luck if you ever even meet the right people. Nepotism and networking seem to be closely linked together. There are already so many stories of people who have barely even touched code and they are working as a junior dev.
And in the future the job market for entry level positions will be even more rough. Think of chatGPT and other AI. Sure everyone laughs at them now, but in a couple years it could easily replace junior devs. I honestly think average programmers will be replaced faster than people working manual labour.
@GrandMonkey I don't believe average/entry level devs will be replaced by AI for a while, but the number will look like it's decreasing due to the bar being raised across the board. Today, everyone wants a staff/senior level person. It's all about risk and velocity. For the most part, nobody wants to take a chance on someone who's yet to prove themself in the job market. Though modern tech is in 'some' ways easier than tech of old, the sheer breadth of knowledge you need to be competent, and produce quickly, are higher than ever.
Thank you for making a video on this subject. I feel often it’s harder for newer programmers to dig in and find good places to learn to code. But sometimes, it’s the person. Not the guide.
Great video - another fun thing I think worth mentioning with systems engineering and programming in C/C++ is performance programming (writing parallel and concurrent programs). Pretty fun and challenging to optimize old algos like kmeans and functions like fast Fourier transforms.
I love fireship. Really.
As someone who was (still is I guess) a Mechanical Engineer who kept finding myself learning/writing code (shitty code I bet) to automate things and ended up quitting ME to pursue not only something I find fun/interesting but something with a lot more potential due to remote-work and salary, this video pretty much sums up my first 4 months of "official" learning. The Dunning-Kruger effect was strong since I've always done some form of coding for the last 15 years, but then diving into the real world of it I found that "holy crap I know nothing" and the stress of it hit. I've just been plugging away and have found machine learning to tickle my fancy because I like math.
Same here
how you getting on? Graduated as mechanical engineer too but man, this is much more fascinating
In my senior year of college as a fine arts major. Now realizing my mistake and am going to learn front end dev along with graphic design. I have a tech background so I should be fine. Wish me luck!
I learned a shit ton of JS and React and my first job ended up using Python and Django for web development, luckily i already knew a lot of web concepts and python, so learning Django was a piece of cake, i still use it for personal projects, and its a fantastic tool to learn web development too.
Even if the tools/languages change in the coming years, I really appreciate videos like this. Especially for folks starting down the CS path. The most important message, however, is to continue learning. As a kernel developer for many years, I've been extremely lucky that C is still relevant. Not sure how many years it has left, but I could definitely be in a risky spot if C fell out of favor and I wasn't trying to learn other languages on the side.
How would it fall out of favor?
Being replaced by Rust kernels or something ?
(genuine question: I'm a complete moron/ignorant)
@@themore-you-know The "how" is simply when somebody designs a better [thing] and people adopt it. But for this example, if you research something like "shortcomings of C", one could argue that a new language with C's pros combined with fixes to its shortcomings, you'd have a better [thing]. Then people may massively adopt it. Does Rust fill that spot? :shrug:
@@jebinho10, your reasoning... touché. Bravo. I'll go do that.
I am concerned with the lack of new C devs. There's so much written in C that needs to be maintained, but I dont know a single person who's trying to be a maintainer of some of these critical projects (kernels included). It might take a true successor lang to break through to get a sizeable pct of the masses into systems development. Maybe, but I dont golang is really it, and rust is simply too complicated for alot of the embedded stuff C is used for. No idea what the future holds w.r.t C library maintainers.
@@andrews8733 I'm learning CS and really like C for the way it's kind of intertwined with the computer's hardware on a deep level. Maybe it'd be worth to pursue the way of C lol
I've been playing this MMORPG for several years now. Still got lots of quests to do and I love it!
started with C then learnt C++ followed by a bit of web dev and now currently learning python(too easy tbh). Learning C made it a cake walk to learn every other stuff out there. I should recommend this pathway to every one new out there as it helped me out a ton. Hope this helps :)
I'm doing data science in cse. Should I also learn like this? And also I'm doing worst in the theory subjects also currently in 3rd year. Thinking of dropping out.
python should help for data sci. I cant guide u much cus im not familiar with that field😅
@@TheVirtualArena24 I would recommend you to look up the job market, if you don't like all the statistics you can go for something like a data analyst job. It's more about the data visualization and less math focus.
You don't need to learn C first. It's something will help to understand how a program language works, but the hardest part of data science normally is not the programming
@@eduardob4107 oh thanks. I was thinking data analyst and scientist are the same. I will try to do what looks good to me.
Should I start with SQL then Python? I'm a graphic design major. Finished HTML and CSS. Copied and pasted Javascript. The famous designers use Python to make fonts. But I like data driven marketing.
Most difficult things in progaming:
1. Naming variables
2. Picking a technology and sticking with it
nothing pisses me off more than seeing someone name a variable with the first letters of what it represents, i have no clue what avd_samp means and now i have to go find out, waste of time, and any IDE worth its weight has auto complete so make a variable name as long as reasonably possible if you need to
FTFY 2. Picking a technology and being stuck with it.
Aye, the variable names are half of the program.
Thank you so much! As a complete and absolute noob with 0 coding knowledge, I'm trying to learn computational chemistry and it's been super overwhelming. The road maps have been so helpful! Need to see if you make more videos on the machine learning/ AI aspect haha
I am missing a few things in this video.
1. where is the basic idea that you should make fun while programming? Don't try and make a new os, but start with something easy that gives you a good feeling.
2. I would say that is important to try different things and dont be afraid to quit something if you dont like it.
Furthermore, great video, I am a great fan!
Number 2 is really good advice, knowing when to drop something is really important because sometimes you really just need to take a break and start fresh again. Even though you may think you just wasted time, what you're really doing is priming yourself for round 2.
Also it misses the point that you don't need to create COMPLETE thing to learn. For example in web dev - you can connect to existing online backend and use something like Bootstrap instead of writing css and do not care at all about those things and learn them later.
I started with Swift Playgrounds on an iPad, which really helped me get the concepts of programming (nowadays I know most major languages). I am not a huge Apple fan but this app really needs a shoutout!
what languages do you know?
@@biglexica7339 It‘s hard to define “knowing“, but I could write pretty decent programs in C(++), Java & JavaScript, given internet access I could figure out Kotlin, Rust and PHP after a while
@@benonardo I mean given internet access you technically know all of them
by knowing I'd say googling ~50% of a language's features when working on something
i've always been fascinated by coding but never had the drive/discipline to learn hopefully with a bit of guidance this will be my year :)
I think starting with the frontend and and then progressively involving backend when you need data or authentication in your frontend is a good approach. And then finally when you get it working locally on your pc, you need to start thinking of how it could be deployed in the cloud. It takes years if you are new to programming.
I’m a CompSci student, and a friend of mine has a saying: “You can’t throw a stone on campus without hitting a CompSci student, but 90% of them are freshmen.”
The hardest part is keeping going. I’m heading into my Junior year this semester, and I feel so lost. But I ain’t giving up. Let’s get this crap done, fellow learners. We’ve got this. Never cruel nor cowardly. Never give up. Never give in.
bro same...
The doctor who reference ✊️
This guy is absolutely fantastic! His video is not only incredibly honest but also hilariously entertaining.
Man, if I actually make it in this coding world, I'm gonna comeback to this comment to thank you for all the guidance and inspiration you gave me
when*
what happened i need to know
@@rassta35 They died
Hey update? How you doing?
Not going as good as I thought, but still there. Finally finished school and currently looking for a job, but it is kind of hard to find a job with only an internship experience, not giving up, wish me luck
Also, deploying on the web is another interesting step. Just deployed my first web app and it wasn’t as smooth but it’s another piece of great valuable knowledge
Please how did you deploy it? Could you please recommend any video that covers it.
@@duztv5370 I would recommend what I’ve used
Railway app
It also has plenty of demos to deploy in seconds, and I’m not exaggerating.
From his videos I would recommend one about building your own svelte chat with pocket base
He used Linode to deploy it
I tried it, just wasn’t as easy as Railway from my experience (mind you I’m a noob)
Exactly the video I needed. Awesome road maps!!
I knew there was a good reason Harvard's CS50 starts with C lol. It kinda feels weird using high level languages when you learn to code at the lower level first though.
I focused primarily on c and within a matter of months, of writing my first line of code, I got shortlisted past 70% of candidates for a job interview based entirely on my explanation of how I would have answered the coding question that every candidate got sent.
I didn't even write the code - the best way to do what they wanted was to use a hash table and, as gptchat just explained, it can take a moment to build one - we only had half an hour to answer the question so I tried it in java, after wasting a few minutes trying in C, and only got about half way through due to my unfamiliarity with the language.
Starting with c seems to be fantastic advice; I'm getting my ass kicked but I'm also learning A LOT! It makes a lot of high level programming seem quite easy.
Thanks a lot fireship
As a beginner programmer you motivated me to stop programming and sell all my electronic and go to the east and start a farm thanks a lot 👍
Missed one for the C route. SDL gets you access to user input, 2d graphics, and sound on MANY platforms. This is great for gamedev.
I found it depends a lot on what a type of person you are! Some learn stuff by reading books about it. I never enjoyed that and always wanted to get some immediate feedback.
Open up the webbrowser console and get cracking is one way to do it, Another (my initial way) is coding in a 3D app like Blender, Maya, 3DS Max.
There is also ProcessingJS playgrounds on the web that are nice and interactive 👍
The content you make is the only content I can stand to listen to for more than 10 minutes in this field, thank you :D
For hardware roadmap, Pi isn't available now a days so I'd suggest using Arduino, and then moving to ESP32 chips.
The Compute Module 4 and the Pi 4 board are the most desired, the Pico/Zero 2W are fairly easy to find. If you need lot of power get something with the RK 3588 SoC.
@@ristekostadinov2820 True, Zero W (or 2W) could work for beginners, but I'd still go for an Arduino instead of Pico. More support, plus I haven't seen many Picos that come with soldered headers.
Hey I'm an electronics and communication student. What should I do?
@@prvashisht You are right the Zero 2W havea lot of power for micro controller lol (512mb ram and quad core processor). Picking up Arduino will force you to find ways to write more memory efficient code since you play with KBs of ram and storage.
@@cosMYs891 what do you want to do ?
This is a perfect summation of literally everything I've learnt in the 4 years since I started coding. This is very well made, and new programmers should absolutely watch and understand this!!!
Aware august 12 2036 TrollDespair 19 jan 2038
Dude, you litferaly increased my intrest in programming by 1000%
Always good to have a project in mind and find the tools you breed to get there. It keeps you motivated and feels more fulfilling when you achieve what you set out to do!
i love breeding tools
How to come up with a project idea
Yeah Gave Dev (5:14) is awesome!
Great video tho
Thank you for this video. I'm interested in Hardware, machine learning and low level systems. I didn't know where to start but now it's a little clearer.
Great video man! I worked as a software tutor for three years and this would have been a great video to show my students! Very well thought with lots of truth. I especially liked the bit at the end about how it's okay to feel overwhelmed and not being an expert in any one thing. Keep making the great content! 👍
Tip from someone who went the prison route: The only potential way in which C isn't self-torture and a complete waste of your time is if you learn it together with ASM, and regularly read your compiler's ASM output. Makes it much easier to grasp the underlying CS concepts and you get to know the whole compile/link/debug toolchain, which definitely will transfer to the higher-level languages you'll invariably end up using.
I really want to like C but web dev has ruined my attention span. Can’t stand how long it takes to configure build tools.
"and you get to know the whole compile/link/debug toolchain, which definitely will transfer to the higher-level languages" - can't sound more false. Don't justify wasting your time. If you use high level languages(Javascript, Python...), you certainly 100% don't need to know or understand a single thing about complile/link/debug toolchain or any asm low level stuff. Not a single thing will help you, just a waste of time(for high level languages).
I see that people lately think it sounds cool or something. I feel the "Yeah I learned C, Assembly and reverse engineering, I am now better than you at Javascript" energy here lol.
@@twothreeoneoneseventwoonefour5 try it first maybe, learning C will force you to learn how data structures and algorithms work, plus, in languages like JavaScipt, knowing how memory works is very beneficial considering how shitty its GC is (unless you don't care about perf/etc enough to care, but point is, that learning C does help a ton in various fields)
* as someone who mainly did JavaScript TypeScript for 2-3 years and is now writing toy programming languages in C
@@evil_witch I already learned c and c++ in the past, but not that much(around 50 hours total on my own(self-learning), got well into theoritical advanced stuff). I understand what you are *trying* to say, but I am still completely sure that it is all a waste of time for a high level language dev.
If you want/need to learn how the memory works, how different data structure work, learn it, but there is no merit in learning low level languages JUST for that.
That is comparable to *professionally* learning design as a mere frontend programmer. 95% of the time you will implement what you are told to by the actual dedicated design team, and the other 5% you can just learn yourself, without having a design degree or extensive 3 year UI design training.
In short, you guys are just messing up the priorities. If, for example, it took you 10 hours to learn something in low level, and for example it give you 20 points in that specific skill, you will have only 1(!) point carried over to high level. Now learn something in high level in the first place using those 10 hours, it will CERTAINLY give you AT LEAST 10 points, if not the same 20. It simply doesn't make sense to compare that and say that "it will help you!!", when you were just better spending 10 times less time learning it more efficiently in the language/environment you need it the most.
Of course if you want to learn low level, I am not stopping anyone, but I am just saying that "learning low level will help you in high level" is just a straight lie.
@@richiekho8938 this is not really 2020, you should have built it in js, transpiiled it to c, then used clang to compile, finally, read the assembly output to optimize it. This is the way : D
This is the video I have been looking for for some months, thank you, really helpful!
Honestly, this is just a great video for perspective. I have a CS bachelor's degree plus a full stack web dev job, yet I still feel lost some days. My tasks are often pretty easy to do, like adding a new function with mostly JavaScript or fixing an error that usually amounts to something silly like "the specific variable wasn't nullable so my backend would fail if it was null". The issue is that I'm great at understanding what a handful of components do, but I flounder with how to implement some big level change or, especially, a new project from the ground up. I know I need more practice with my foundations to have a more long-term career, because while I'm a good worker bee that can knock out menial tasks, I'd probably be the first to go if there were cuts (which I'm thankfully not super worried about rn since it's a pretty comfortable company with government contracts but still, it's not nice to know I have the least impressive skills on my team, though I'm also only a year into the actual work force)
Correction: Godot isn't "based on" C# - It's written in C++. It (optionally) supports C# for scripting, but it isn't the main focus.
GD script, the default language is based on C#, if my memory serves me well
It is not.
@@DeviRuto youre right, my bad. I was too tired to function last night. Cheers
I don't know if I am right, but this seemed like exactly the video I was looking for. Thanks for the no-nonsense and straightforward approach
Hello Fireship. Your videos are amazing. Could you make a vidoe on non-coding skills that are required in the actual day to day life of a programmer?
It's called "exercise", there are great health channels on it... also socializing videos... (joking aside, as a programmer I think the day to day life is always the same with everything right? maybe just... programmers are usually passionate and spend some times on side projects in their d2d life too? idk man... the question seems wrong to me, elaborate further.)
I should say, I am quite enamored with Al Gore Rhythms. They have a certain elegance and precision that I find deeply appealing. I could spend hours lost in the intricacies of a well-designed Al Gore Rhythm. It's almost like a puzzle to be solved, except the possibilities are endless. I find them endlessly fascinating, and I am constantly striving to improve my understanding and skills in this area.
And they are a good way to prevent commit change requests.
You should try the Algorithms 1 and 2 courses on Coursera by Princeton. They’re free, rigorous, and super interesting.
I have no interest in coding, but TH-cam keeps recommending your video. To be fair, I do keep watching them.
3:55 just a heads up, Qt is basically better than anything else and is also cross-platform.
No. GTK better
@@axitc GTK is only graphics, Qt is so much more...
Thinking about changing my career, 29 and just starting to learn to code and I'm thinking about becoming web developer. Wish me luck 🙏
Flutter + Firebase = Best Full Stack ✨
flutter code gives me an aneurism ngl
As soon as he said back problems I fixed my posture 🤣🤣🤣
🤣🤣
every time i feel lost in life, I always come back to this video. You are an inspiration and my guiding light in the dark. Thank you Sseth
Great video!
I like the C / C++ route to start off. After that almost everything builds ontop of that knowledge and comes to you naturally... Unless you want to to do some Haskell or Prolog... 😵💫
My university is making me go that route while studying electrical engineering. I'll have to learn Rust on my own though because they haven't caught up to it yet.
I'll have to learn some others down the line as well, like Matlab and Labview, but they're not nearly as exciting for me as Rust.
Starting with C/C++ is the best thing one could do. But people don't get that, because of the Python, JS Buzz...
EDIT: ... and now, Rust
Gave Dev is my go-to field.
what Gave you that idea ?
Best video I have ever seen. It has given me an insight of the madness am about to release onto myself hence it was HILARIOUS!
Thanks, and for this, am following ya!
I loved the C shoutout!
It's a language that can give people good lower level perspective, which I feel is often badly needed for many high-level lang oriented developers, producing overly bloaty software.
Choosing to major in CS years ago was the best decision of my life, honestly. There comes a point where all that knowledge sludge takes shape and suddenly everything clicks. It felt like that scene in the Matrix when Neo finally sees the Matrix for what it truly is, but maybe that was just a hallucination from years of sleepless nights lol
Lol just started my CS degree, and do you really need the shit ton of math?
@@kcnl2522 the more awesome the project, the more math is involded. programming is math, and doing math in a mathy way is nothing but abstracting away the programming language to more efficiently think about and solving problems. So if your algorithm is really awesome, it needs math to be able to think about it. But ofc some ppl apparently also have a good time solving the latest puzzle posed by web standards of how to draw a button despite the many artifical road blocks set in your way by the design constraints given to the web api developers.
When you decoded the Matrix, did you see Andrew Tate stuck in there somewhere ?
@@kcnl2522 I'd say it depends on the field you'd like to get into. Web development generally doesn't require math, except on some niche cases.
What type or level of math you need varies from field to field as well. For example, in hardware you might need to know about some physics like electric currents, maybe pressure for moving pistons, etc. I'm in the data science/machine learning/AI field, so I know some linear algebra and calculus. Some people get into advanced database engineering, and they know relational algebra, whilst other people in the advanced functional language sphere learn lambda calculus.
My advice would be for you to take it easy, see what you'd like to explore deeper, and to remember that the most overlooked skills that a computer scientist needs are creativity and patience. In CS you never really stop learning, so it's okay to mess up, feel like you don't know all the answers, etc. That's what the internet is for. Eventually you'll be so good at coding, it'll feel like the lines of code are just lego pieces that you're using to build anything you want, you'll see.
Good luck on your CS journey, and when in doubt, use stack overflow!
@@nosferatunoir2740 I’m actually gonna *major* in data sci, haha, thanks for sharing about your own journey because it looks like I’ve got quite the challenging/rewarding one ahead too
this is actually.... a very good roadmap video... kudos for the time spent on it
"There's no guaranteed step by step program." Agreed on this one.
I started out with C++ as my first programming language in college then moved to Java as part of my mobile dev course. Then, PHP and JS (with jQuery) in my 3rd year all the way to my first 3 years of professional experience. During my first work experience, I learned python by myself for basic scripting then started learning Django and Vue in early 2021. In 2022, I got another job where I used React and Ruby with RoR for our internal app. By 2023, I've already learned TypeScript, some basic Lua for NeoVim, Nuxt (for personal projects) and Next (made contributions on open source Next projects), a handful of other technologies, and I've started learning Rust.
It's been a wild ride so far and I feel like things will get wilder this year.
Side note not mentioned: flutter does not only target mobile, but also can target dekstop (MacOS, Windows and Linux) and web, might be worth to mention that in the desktop section in particular, since it's exactly the same target as electron and Tauri
Sometimes I think that coding is easy and anyone can learn it. This video really brings into perspective how much i actually know and how much i have actually suffered hahah. Its easy to forget all you have achieved.
Huge shoutout to folks who use C++ to earn some sufferings like me.
All the C++ devs leave a like below
Btw: there are legends who slay deep learning using C++ , geniuses like compiler creators.
Awesome video Jeff keep up. This created a vortex in my head like a toilet flush. Thanks
As a fellow UE5 dev I can confirm this statement is 100% true.
Me who started learning with C, moved to C++ and decided to go to college for Systems Engineering... Yes I am insane but I like insanity
@@PedroMoreira2001 Dear god.
@@Soulis98 nah men, it's pretty awesome. Learning python for a Data Science class? Easy. Learning Java for programming classes? Yep. Learning some Javascript? Give me that. It became so easy because all the HUGE apps I had built for some home stuff gave me sooo much knowledge on complex systems that I became incredibly fast at consuming documentation and developing clean code because of having very little server capacity to deal with
I too haven't met a great engineer that hasn't come from the Fortran/Assembly/C/C++ Pack.
These people understand what computer programming really means.
Start with Python, JS and Co. and fool yourself into believing you are a Software Engineer.
A coder only, at most
There's also C++/Qt option for application development, and it's a popular choice on Linux if you also use KDE Frameworks. And QML(kinda JS)/QtQuick + Kirigami, if you're a youngster.
I myself would REALLY love to get into video game development! This video honestly helped out a bit with what programming language I need to learn and what engines are best. Thank you!
No matter how hard I try, I can never escape fucking javascript.
I started learning python because i wanted to participate on a project that my dad has with IA. I always hated maths and then I found out this area is full of it. At least now its been a little easier to understand since now is math applied to real situations and not just some equations that I will never understand what they are for
Bro im not gonna lie, that was the most informational video that i could not understand in my entire life, and by the way im not a coder or a programmer, wanting to get in to it cuz i got alot of free time
See yall in 2024, when we finally start to learn to code. 👍
Recommended backend at 1:45 - check out!
Good advice in the end: to get a good career in coding: Specialize on one thing (most likely a great advice, which I've heard from many different sources); don't forget this.