Being creative in programming requires technical knowledge and lots of it. How are you going to come up with "creative" solutions if you don't know the possibilities of your tools?
Exactly but I don't know who you are arguing against. All the people who think math isn't creative think so because they have never reached a good enough level at math where math has creative parts.
Yes, that's so spot on. Still, I would add that this also depends on the level, what you consider creative at some level will be too obvious to be considered creative at a better level. Some algorithms that would seem pretty obvious to experienced programmers are creative solutions when students that have been in contact with programming for 2 months come up with them. I always though math was creative. People who don't think that generally have never gotten good enough at using math tools for it to be creative and this doesn't require uni level math, we had quite creative math problems in math competitions in middle school.
@@DipsAndPushups I have always hated how math was taught in schools because schools took the fun out of exploring the relationships between things. The way I did math on my own was always so different than how school taught it because I was more interested in how more complicated things were related. Although I didn't start out knowing much I very quickly found relationships between things as soon as I knew the elementary rules of algebra because algebra was really fun to play around with the symbols and substitute equations. So when I started learning programming I saw it much the same way, first you learn some of the syntax and then see some of the programing techniques used to make programs and then ideas kind of just come to me on what else might be possible and I try and implement it if it doesn't work I look at what the error is and try and fix it.
The biggest lie told by online programming courses is that their product will make it easy for you to jump the gap from no professional programming experience to your first coding job. Landing your first coding job will very likely be the result of you applying for dozens or even hundreds of jobs, even in a job market that favors employees.
I had a job in IT for 7 years, 5+ years were in developer roles. Still took me ~200 applications to find a job when I was moving to a different country. Be kind to yourself when searching for a job. It's not a failure of your character if you don't land the jobs you think you want for yourself. I found a great company where I am happy to still be for the last 5 years!
Even with a cs degree and one year of experience, i still had to send out over 100 applications to get a job. The hiring process is bad for everyone involved.
...Usualy true. Somehow I ended up on a 12-week bootcamp by a contracting company that put us square into a 6-month contract with a major insurance provider, and the contract was pretty much just to make sure that we weren't useless before they hired us properly. And they paid us during the bootcamp (not much, but still). But the main thing was that they were looking for people who aready had *some* knowledge. The curriculum was set up as if we didn't, but of course something like that got tons of people interested. And beyond poor management it's actually a decent job. Work from home, short fridays, and they explicitly want us blocking off time for ourselves to learn on our own so long as we're getting our work done at a reasonable pace.
Prime I absolutely love that you bounce between high-energy fun-loving twitch-streaming professional goof and then on the other side, gentle mentor with real advice for any developer
A quote I love: "Coding is to programming as typing is to writing" Just because you can type, doesn't mean you can write a good novel. Just because you know the syntax of a language, doesn't mean you can design good software. Learning to code is easy. Learning software engineering is a never-ending learning process.
Bingo. You've perfectly articulated what he was trying to say regarding "programming being easy". Learning to code is easy (typing), learning to build programs (writing) is hard
When I was a kid I wanted to be a pilot and an engineer and finally a programmer. Nowadays kids just "want to be successful influencers". Such a ridiculous thing to say, yet so common nowadays.
None, the answer is none. When it comes to a tech influencer. I seriously think when they fail at what they do, they just see if they can lie about it on TH-cam. David Plummer from Daves Garage is the only real one in my honest opinion.
Today I saw one here on TH-cam recommending begginers to use redux with next. And when I said in a comment that they shouldn't use redux because a beginner level project will never be complex enough that redux will actually help, he just responded "Bad advice, totally disagree" and didn't care to elaborate. For context I was an architect in a project where there was around 40 people working on it, all them were either juniors or interns, those who weren't were the tech leads. NONE of the knew how to use redux properly so it was a HUGE mess even though I created a structure that they could just copy and paste. But the guy on TH-cam said beginners, who barely know how to use hooks should use Redux 👍. Its been 9 hours since that and I'm still pissed.
I can’t get over how many of these twitter accounts exist solely to post click bait questions about tech. I’ve muted so many of them and I’m only 3 months into learning web dev.
@@henrypl360 Tbh when I started learning react for me when a dev or an influencer talks about it I feel like they are just trying to get views but I still don't mind. But boy when you get deeper onto frameworks it's like a room behind the "Create A Website" conference and life is beautiful yet complicated.
Biggest lie new devs get told is that bugs are just from coding errors, in bigger and more complex products there can often be more bugs from requirements and design than code
Yes, bad analysis and bad requirement engineering are the best recipe for a disaster. Iterative approaches try to somehow remediated these problems, but for sure it would be better to avoid the problems from the beginning. It's just: upfront analysis and RE are not easy (when you want to do it properly) and you don't have many tools that would help you to verify whether you're right with you're output (like devs have compilers checking the syntax, unit tests checking results etc.)
The worst is when it’s not even a bug, but a situation where the meeting the requirements has become impossible because people kept just hacking through whatever requirements were given at the time by non-technical people, and now there are architectural limitations that mean you have to either give up on the new goal or rebuild the whole damn thing.
@Clau007 and completely overlook that different requirements contradict each other. To say "Overanalyzing is no good" is practically meaningless, at there is no measure by when something is properly analysed and by when something is over-analysed. Everyone can agree to that phrase and still have a completely different view on how much up-front analysis is good.
@@brdrnda3805 Tbh there isn't really like over analyzing and it should never be a thing which I agree to your other statement. It's a concept that works to big companies. Like in a factory, everyone has a Quality Check that goes through the process to make sure that quality is up to the standards.
😬 managers that change requirements - so the customer likes them - for code you tested commited and approved already, and later blame you because it's not working and as "their developer" you should fix this "small issue" quickly .... sometimes it's really fortunate if you can't see someone in person ...
Let's get real... Bootcampers get raw cause they are struggling to break into the industry after being sold the idea that some camp/product will land them a job. That first-job hunt is stressful and it sucks. I went to a bootcamp and now I work at Google -- does that invalidate CS degrees? ofc not... and let's not skip the fact that I spent years programming 80+ hours a week because I love programming. OK... Yes.... half of that time was spent configuring vim... but that's not the point! Would I go back in time and replace one of my degrees with a CS degree? absofrigginlutely
@@kalojim2699 a programming bootcamp is an in-person or online intensive training course to learn basic programming skills. The term is pretty loose now but most people that talk about bootcamps refer to a curriculum spanning a couple months with multiple stacks of technology.
One argument I've seen about Python as a bad beginner language is that it's so easy that it can make you get used to easy syntax, and as someone who kinda trampolined into programming with it and is trying to learn Rust I've definitely felt that. But it's a double-edged fact anyway: it can make things harder later, but it makes things so much easier to start
that is reasonable. Simple syntax can make other languages harder to look at until you are familiar. And like you said, flip side, its way easier to learn any other language once you have one under your belt.
This is why you start with C I started with Java and Currently learning C after I tried learning Rust and realizing I ain't gonna go anywhere until I realize what rust is improving upon C++ so I now am learning C will move on to C++ once I grasp the basics of low level programming than go to Rust. I am Hoping this will take me 2 years since I learn at a slow rate and allocate more time on my academic studies.
@@asandax6 High level languages like Javascript and Python can lead to so many poor habits too. Common theme I see in Javascript is people thinking it's cool and great to try and condense as much as they can into one line of code. For me, readability and performance come first. See a lot of people condensing into 1 line arrow functions and referencing a function several times rather than storing it and referencing a variable several times instead. Learning a more structured statically typed language stops more (not all) bad habits earlier in my opinion.
That's a good point. My first language was C#. After about half a year of goofing around with C# I decided to learn C++ because I wanted to make a game and apparently C++ is pretty popular for making games from scratch. But not being too familiar with the notion of pointers and memory allocation, I had a very rough and demotivating start. Thankfully I was able to discover some awesome tutorials to fill in the gaps, but the switch to C++ was like a cold shower for me.
I don't know I learned PYTHON as mine first programming language. I heard that C is hard to learn. I started learning C and it was very easy. I learned in 5 to 6 days. Then it took me almost 2 to 3 days to fully understand pointers, arrays, double pointers etc and more 2 to 3 days to learn dynamic memory allocation. I cannot really understand how learning python is bad for noobs. If you ask me then C is more easier then python. And it took me almost 5 months to only learn syntax and builtin functions/methods of PYTHON since it was mine first programming language. C is very small as compared to PYTHON
I actually think a statically typed language is the best for beginners where the learn the concept of types. once you learn the concepts of types i believe is much easier to understand classes/objects.
I agree. Javascript and Java were designed with a lot of shortcuts for coding. But we only understand these shortcuts by first knowing how a low level language like C is written. I don't have many opinions about Rust and Python though. Python is great at creating scripts quickly. Rust is great at creating backwards compatible low level libraries. These languages are designed for a purpose and are good at those purposes. But Javascript and Java try to be a bit more generic so I think it ends up being too messy. Just my personal opinion. I code in javascript regularly even though I dislike it.
@csbreadbrothers I also started with java, then learned C, then some python, What I found super useful from C currently working JavaScript front end is pointer, man do they make things clear, I have no idea how they refer to it in JavaScript to this day but array of pointer makes soooooooooo much sense
I was taught Java first for my degree, and I’ll say that it made other languages a lot easier to learn because it usually resulted in “wow! That’s so much easier than Java!”
@@chriswalker7408 I remember the install message "Java runs in 5 billion devices around the world". I'm pretty sure the number of Android devices running is already way more than that today xD.
@@chriswalker7408 I don't remember Java being as hard as trying to figure out whether or not someone intended a variable in JavaScript to be used as a boolean or a number or an object or string containing the secrete code of the universe.
One of the best quote I've seen is: "Success is when preparation and opportunity meets" meaning you don't just need to work hard but you also need luck to be successful. This does not just apply to CS, it applies to every field of life.
I feel like your take on if you need a degree or not is spot on. I've been a software engineer for 22 years and I do not have a degree. But I have also cautioned friends and family, who look to my success as evidence that college isn't necessary, about the difficulties I faced getting work sometimes. As I became more experienced it became easier, for sure, but those first few years it was hard. A degree *can* open some doors that would be otherwise closed.
You have the same knowledge or even better than those who have the degree. It's just a title on paper proving what you have learned from school but experience says louder since you actually did the job and not just conceptualize. Same goes for if you're learning programming or doing software engineering on your own, the best way to learn and prove yourself is to come up with simple projects that would prove the point that YOU can actually do the job. Proud of you sir - College isn't necessary in some jobs. But of course obviously, doctors they need it hahaha
You probably live in the US. In europe you can't get a engineering job without a degree or what we call a "Techniker"(technicion) it's like a degree but it's made for people who learned a job by trade and covers the area of a full degree you actually need in your job.
@@AdamPresley "Techniker" covers engineering jobs, "Betriebswirt" cover business administration, servant, etc. And we have a view titles in practical medicine. They all run under the "Industrie und Handelskammer" I don`t know how to translate this well. It`s an institution by the government that provides exams. Usually, a company prepares you for the exams they need, but you can do them on your own as well. You can`t become a doctor or lawyer that way. And usually, companies prefer someone with a degree for an important position, but you can get pretty far with it
@@MrHaggyy Thanks for explaining that. I think it is pretty cool that these companies will help prepare for the certifications needed to work. Everyone wins. The company gets an employee who wants to learn more about the trade, and the employee gets help for what they need to grow.
People who say this often don't understand what its like in other industries. My brother in law, 6th in olympics in swimming a few back, had a hell of a time getting into lawyering. He passed the bar and it took a lot of "who you know" to get somewhere.
Knowing people can be a very valuable asset, even in the tech industry (or maybe especially). Not saying there are not opportunities if you don't know anyone (there certainly are) but saying "it doesn't matter" == false. Having contacts from meetup groups or conferences, not burning bridges with former bosses or former coworkers, etc such that you can reach out to them from time to time can definitely be very nice to have.
As a someone with a BS in CS, I’m in agreement with you. I could have learned what I know now on my own, but it would have been so much harder. And the thing about how hard programming is or isnt, I agree. I think most people can understand the basics. Like, if I explain how an if statement works, most people understand. But beyond that it can get really hard. But a BIG thing is the individual. Some people’s brains work very logically and so programming comes much easier. And even within programming, some people struggle where others don’t.
Also programming can be very different depending on what you do. Like what hardware do you use? Microcontroller - Microprocessor - ASIC - CPU - GPU - Mainframe? Do you make new algorithm and don't need to write a single line of code like ever? Do you implement those algorithms in any language or framework? Do you build a system out of these languages like ARM, Intel, Nvidia or Apple do? Do you develop an application for something? Or can you fit a developed feature into market requirements? ... Or do you just make YT? Totally different skill sets in each of those categories, and each one needs thousands of really smart people.
Another factor is how its taught; the programming classes I took first (c++) would just throw concepts at you and I bothered to remember absolutely fucking none of it because why would I? "This is how you write functions" "Cool, I mean I'm not sure why it takes this long to explain it, but cool, get the basics done!" "These are function prototypes, they do absolutely nothing and we are forcing you to use them" "Uh, wtf? What could even be the theoretical advantage of doing this?" --- "This is how you use different files in one project!" "Aight, I can see value in that!" "This is how you seperate the header & implementation, you need extra steps because it wasn't designed to work like this well" "That just, what? So you're fighting the compiler just to go out of your way to double your file count while seperating basically zero complexity? Why?!" "Fuck you, do it" --- "This is a for loop" "Aight, neat." "By the way remember iterators too" "Wai what, can yo-" "Moving onto the next uni-" "No, wait wait, what the fuck are iterators? Why do they exist if they are just a more complicated way of writing a for loop?" "I said, *_next, unit._* " In contrast playing through Turing Complete halfway one time and then learning about C & assembly not only taught me how these things actually are, but since I basically had to invent the concepts myself I also understood *_why_* they were how they were and knew details about them I wouldn't have otherwise. (For instance arrays are so quick at random access because they are literally like two instructions, arguably 0. This is ALSO why vectors aren't the same & why vectors are generally worse, despite being purely better on paper)
Honestly the copy/paste stuff has been something that I've observed through my progression as being something that comes with time for a language. It's easy to copy and paste something, but it takes knowledge of the language and your code to alter it to fit in your program.
YES. Tired of the id¡ots who seriously say "it's just copy and paste". No. Anybody can smash a nail with a hammer but not everyone *understands* how and why the nail goes in place joining the structure. Also: the devil is in the details.
This is something I've seen in myself, too. I'll find myself copying/pasting a lot because I don't remember specifically how something is written but functionally I still understand why/how it works. You don't need to reinvent the wheel every time you need another wheel
Wow, I agree with you a lot that the take "technical skills do not matter" is ridiculously off the mark. The most well paid engineers today are those that work on large scale production systems at big tech and large telecom companies. I've heard stories of some even making 1 million dollars in yearly salary. To get these positions, a recruiter needs to contact you (don't call us, we'll call you), and you have to be a swiss army knife programmer, because their selection process will test you on algorithms, coding problems involving concurrency and IO, operating systems, troubleshooting, networking, systems design and management and cultural fit, and you need to score well in all of these to get a shot at the job. I find it so cute when someone starts to write code for a startup or software house using some framework and assumes that's all there is in programming.
It was probably written by a person who, like myself, is "forever senior". When you know, say, 5 languages picking up new ones becomes easy and stops being a limiting factor. Those most well paid engineers, in my experience, are technically no better than a median google engineer who gets nowhere close to that.
@@Turalcar Well, I partially agree with you. To make a lot of money, you need to think like a business, you need to think about market size and competitive advantage. From my experience, the programmers who make a lot of money are extremely good at a very obscure set of skills that support a huge market, and if you don't have above average skills and put the effort, you can't even attempt that. I see your point that the median google employee has everything lined up to do this kind of job, but the reality is that most don't want or don't care. I am of the opinion that it doesn't matter if you could in theory do something. The fact is: you didn't do it, and that's the point.
My response to the "programming is easy" section: It's part Dunning-Kruger effect for sure. For a long time when learning programming it's impossible to separate the concept of *programming* from *programming language* and people that don't program at all definitely can't make that distinction. They look at code and don't intuitively understand what it says so they don't understand the immersion of programming. In the head of the developer we aren't just staring at a screen with colorful text, we're in *the zone* and our brains are acting as the compiler/interpreter/runtime, and running the code in our heads as we type. We can immerse ourselves into the software we're writing, and not think about the exact syntax of the text on the screen. Especially with the tools we have access to these days, it makes it almost effortless to do the code-writing part itself The syntax and the code itself is *everything* to a person just starting out, and when they're getting the hang of the syntax, they think "programming is easy!" but in reality they're still stuck in syntax and tool land. Whereas experienced engineers don't think much about the code-writing itself, but our heads are in the problem space we're working in. The language we use day-to-day is just a background thing you can do as naturally as speaking or typing an email. When trying to make optimizations or refactoring, the focus becomes somewhat about the syntax or semantics of the language, but again to an experienced engineer the focus is about leveraging your knowledge of the language to solve the problem in a more efficient or idiomatic way. Not "Oh if I put an asterisk or an & sign here maybe the error will go away" land that happens when you're new to a language and stuck in syntaxville
I think one of the biggest lies is how people just focus on programming languages when talking about what you need to be developer. The ability to program is just one tool in your toolbox. Other tools like engineering processes, understanding how databases work, cloud, software architecture and a lot more are all extremely important. I appreciate many of those skills will be picked up with experience but I think it’s still important to mention especially for people in lower skill positions looking to grow.
I know from friends experience, both coworkers both hired in USA. Uni Degree: please mr. come this way. Not an Uni Degree: who are you? why would we take you? please produce some proof that you are qualified.
I picked up programming when I was 19, I had no I idea what people make, I was actually thinking that programmers just make the same amount of money as office workers but the job was way more interesting. And then somebody told me how much programmers make. I did not know that you could have an interesting job and make good money.
Want to know the most painful programming thing I've ever heard? I asked a guy who develops and sells some business application for a particular industry (for like 15 years), what language it was written in. He answered "visual studio" so I'm like "Oh yeah, but what language?"... he didn't know :P HOW?
@@mohammedshamil1626 It's funny people think I'm lying. There's quite a few terrible point & click, copy/paste programmers out there that know some minimal things about the few tools they use and nothing outside of that. That said, I was shocked that he didn't at least know the *name* of the language he was using XD.
Your takes show how down to earth you are. Some of my feelings: you don't need to have a CompSci degree (I don't) but self taught folks are loosing out if you don't pick up some textbooks. Absolutely agree about passion. If you want to be excellent you have to have passion for what you do. IMO much (not all) of what people call luck, is taken up with social skills. I'd rather work with a slightly less competent but easy to get along with coworker, than a jerk who is a little more competent. Of course there's no conflict between being competent and easy going, so people should strive to be both. I also hate the takes on salary. It's relative, and who cares if someone makes a ton more in SF. There's more to life than salary.
I was a self-taught programmer, I started in 2002, and then in 2007 I went for a degree, I finished it in 2013 because I was only doing 2 classes per semester, because you know, I worked. Totally worth. I learned so much more about soft skills, discipline, business, even the compsci theory, which is also important. Sure, you can get those from textbooks, but its much more cool when you can have discussions with a teacher and other people. Its about the people, not the content.
These ones are actually really easy. Its twitch and the very curated videos that are hard. that is why they are usually +1 month away from each other :) The reality is I try to crank out work very fast.
11:11 lgoic gates are easy and the basics of programming is easy. the hard thing is making a working computer out of logic gates. in theory it is easy and you can learn how you have to arrange the logic gates for it to be a working computer within a few hours but do that without a helping hand that is showing you what you need to do and you will take years to figure it out yourself. there is for example the steam game "Turning Complete" where you go from an "and gate" to programming the computer you have build with the gates within a few hours, so it isn't hard to follow the game and build it but it is hard to do it without the game trying to figure it out yourself. the same is with programming in general. the basics of the logic and the basic words and syntax of the language you are using are easy to learn, but if you are starting to import plugins and try to work with different plugins at the same time while doing a 1k lines project, you will find that you will be searching more through the internet and documents than actually coding because you don't know the words you need to do what you want. that is the hard part. sure we have for almost everything a plugin but we are lucky if the documentation of it is enough for us to figure out the way they want us to use the words without creating bugs and edge cases that break the program half the time but not always.
logic gates are not easy for everyone, just like in a lot of other aspects of software engineering. If someone is good at/like/understand math they probably will have no problems understanding logic gates. But with no proper formal education, or just bad HS education, is completely expected for someone to need some time before algebraic logic makes sense
10:40 as a beginner i feel that so hard. Learning and understanding what all the individual parts do is really easy but the moment i have to put them together into a properly working program i sit there like "...well shit" and i feel dumb as a brick
Something also dope about side stuff is the cross pollination of ideas. I know that lots of that sort of “hey I saw how this one piece of tech did this one thing in a really cool manner, how hard would it be to bring it over to this ecosystem?” Those sorts of moments are magical
something you also did not mention is the personality of people. Some people are good at being self taught and learning everything by themselves. Others need a school to get a more structured and organized and "forced" to do someting.
just reminded me of Wizards First Rule --> "People are stupid; given proper motivation, almost anyone will believe almost anything. Because people are stupid, they will believe a lie because they want to believe it's true, or because they are afraid it might be true. People's heads are full of knowledge, facts, and beliefs, and most of it is false, yet they think it all true. People are stupid; they can only rarely tell the difference between a lie and the truth, and yet they are confident they can, and so are all the easier to fool."
Great video. Re. creativity and communication: software engineers in the upper ranks tend to have responsibility for larger, more fuzzily-defined projects. To succeed, they might need to to come up with fresh ideas (new product feature, new research direction, etc.), and they might then need to convince others to commit to working together on it. This is hard, since it's new skills to develop beyond pure technical skills. But yes, the technical part is still hard and still important.
yeah For me its creativity is a must. Just has to be every where. Second technical skills. Third communication skills. You don't have to be the best communicator to get your point across if you know how to use data and spread sheets. Often you need to only convince one person and you have gained a champion for your project :). But, without the technical skills, you can convince all you want, you just cannot deliver.
Self-taught and have gone pretty far without a degree... That said, there are times when having a more structured education would have filled in gaps in my knowledge that have bit me and taken days or weeks out of my life on multiple occasions from having to "go back to fundamentals" of a given way to approach a problem.
I have formal education in IT Engineering because it was easy and shorter than a software engineer carrer and I really empathize a lot with self-taught people. In a lot of instances I see myself lacking the knowledge to hop on in interesting fields to experiment with in my free time. Just gotta keep learning i guess
Omg the clean code comment, thank you. The only objectively good code is tested code. Otherwise when we're saying "good code" and "bad code" all we're really saying is "code I understand right now" and "code I don't understand right now". If you rewrite some old untested code and don't add any tests firstly you've probably broken it, but more importantly you haven't really contributed anything to the codebase at all. Rewriting "bad code" is a net negative without tests. If you are rewriting code to "clean" it without tests then you are actively harming your codebase. That's a letter to myself from 12 years ago. Lol.
If you think Clean Code is just about splitting up method, you got it wrong. It's about making your code so you and your team will have LESS work to do with the next changes without pain.
I took the "follow my path and you will get to the same destination" as the file path. Which only works on default installs and 50% of the time seems to be changed after some patch/update was applied :D
Please respect Prime, "3 billion devices run super fucking amazing Java" hahhaha Nice video bro!!! I thinking graduation is important, and its more easy to get the first job with that... calculus very important if some dev want to move too data science too
I still think of calculus as one of my most used classes though I NEVER do derivatives or integrals or math in general. Its the ability to look at a problem, take it apart, and attempt different strategies.
thank you! Its something I have taken away from a friend of mine who always seems to know things I don't. I realized he takes his time to recall it instead of just looking it up. Really ingrains it into your head.
This is a big one for me. For me I can usually detect when someone copy pasted code without full understanding of the solution. This behavior drives me nuts. It also hurts you as an engineer where you’re never actually solving issues you just become good at searching for a solution.
I read a brief study one time (tried to find it again but couldn't) that showed a big chunk (i will say 1/3 based on memory) that graduate from CS degree end up not using their degree. Another big chunk of them end up not finding a job in time and being forced to move back home and work a regular non technical job. I think somewhere around 30% actually have a full life long career with their CS degree because everybody else ends up having a new career without CS. This was explained by people graduating and realizing that the industry is very different from college and then competency needed for the industry is very different from the competency needed for college. Some end up just giving up after struggling to keep up with the industry. Now I'm pulling this out of my ass right now but only because i cant find the research again. I think it was by MIT or something. Also the tools and methods of programming in college *often* end up not reflecting practices in the industry. I hear that a big chunk of graduates come out only knowing OOP and inheritance and very few tools and frameworks and nothing but academic algorithms that got them through school. Of course it all very much depends on the school. It all varies from region to region. I dropped out of college due to some health related problems and some technicalities with the school i was at but I've been self taught for over 10 years and i still struggle to find a job cause i live in a rural area where you NEED a degree. But right I'm in the process of maybe getting a job with Amazon in Seattle which would require me to move. But still, industry still favors degrees but they are shifting towards self taught, and the degree is depreciating. But hey maybe the research in remember wasnt formal or never existed and I'm just taking out of a hat. But i know a lot of what I'm saying is true.
In the UK, I've been told by many recruitment agencies that none of their clients are interested in hiring people without degrees, or many years of industry experience.
A little bit of coding skills can take you a long way. It has nothing to do with how good you are at it. I have many dozens of scripts that don't go beyond ifs and for loops, but they do make my life easier. Scripts to download videos, watching stock prices and setting alerts, a personalized savings & investment calculator, etc. (Not sure what my point is. :P ) Thanks for this video!
Yeah, there was a debate on whether basic programming in an easy language should be mandatory in schools. It takes like no time to be able to get some basic scripts that you described running compared to the amount of time dedicated to worthless crap.
Im a BME student who codes a lot in my free time and sometimes it irks me when I ask why someone's doing CS and they say "for the money" and they don't know what backend vs frontend even is...
Biggest lie about programming: that it's about programming. Much navel gazing, such lack of solving problems. Honorable mention: working as a programmer for X length of time will make you a good one.
As someone that started programming on early 8 bit systems, you make some really valid points. I have taken some college programming courses, and some online courses. The college curriculum was years behind, but I did learn better commenting, cleaner more readable coding, and better testing practices.
I especially agree with the last part. I was looking into what makes a compiler and what makes machine code work and oh boy how the amount of math you need to know and the mathematical maturity you need to have increase exponentially! People think AI are the most complex pieces of software you can find but that is not the case.
yet these "disrupting education" startups, will take on huge cohorts of mostly immigrants and tell them they're gonna all make PHD money without a PHD.
Ah fuck.. I'm a new CS student and I can't do math for shit, I've been trying to learn calculus from youtube in past few days but I literary can't understand anything, am I gonna be fine?
I don't know man, it's a bit too strong to say "ai aren't the most complex pieces of software" Once again, it depends. We know for a fact that maths is currently not advanced enough to solve some specific problems in AI. It's litteraly so complex that NO ONE in the world has an answer for those problems. But yeah, people think it's the most complex thing not for that reason. And it's not the only field where human doesn't have every answer.
@@mr.commonsense6645 don’t worry you will be fine. Math is required in higher levels and if you wanna specialize. Writing complex algorithms is not something you will be doing every day.
@@xenio8736 To my understanding AI is based on a gradient descent in a multivariable calculus context. I think that is pretty much all the math you need for it. I think that what is missing is an understanding of what that mathematics means in the context of a neural network simulation. Perhaps I was just scratching the surface of the field.
5:13 @ThePrimeagen explanation: developers rely so much on third-party softs that at some point it becomes comical for them to pretend to have created anything. It's the case in any industry, but computer science make it even more obvious.
Awesome video! In case you wondering again, my knees are fine today. Oh to be old! Biggest lie: as a beginner, it’s ok to not learn a testing framework for the language your are learning!
It's rare to have things that are objectivelly "easy". If something is easy to do, then we take it to insane levels of complexity because the basics are easy. It's very easy to kick a ball, but go try to be a soccer player that does pretty much that.
@@ThePrimeagen It's all ones and zeros. That's only two numbers. babies can count to one, right? I mean we (humanity) literally turned fire into video games. Everything is simple when you look at a small enough part of it.
Honestly for most of programming you dont need college. You do however have to enjoy it and be motivated and create a portfolio of projects that show your skill. the areas where i'd say college is a debatable topic is robotic programming or game engine stuff. basically programming that involves a lot of math. But a lot of programming is just a thinking process that can be learned
The only benefit to gatekeeping is that it keeps out the people who would ruin the thing. It keeps out the people who maintain it, keeps out the people who would better it, keeps out so many more beneficial people.
the thing about programmer jobs is that yes, to get a really great job, you basically need at least a bachelor's. So when people say " you can't get a job without a degree" they talk about those top 10% of great jobs. People need to manage their expectations. If you don't have a degree, get a shit job and then use the work experience to get a better job until u get a great job. Expecting to enter into a great job without a degree is like thinking that you will win the lottery some day
So um... What would you choose if not JavaScript for backend? I tried Rust but it seems that it's correlated with senior engineers, and I'm still a junior.
I think your last bit on education sort of links to the programming is hard/easy dichotomy. I've worked 20+ years in pretty easy web stuff through to pretty hard multi-system, multi-national coordination problems and in the early years of containerization and message queues etc. In some jobs we hired people from bootcamps and even trained people up. In the harder jobs we only hired people with formal education and years of experience... and then trained them up :P Programming can be easy, but it can be really hard and challenging.
exactly. The difficulty isn't in the programming itself but it the problem you are attempting to solve. And some people just don't even know what NP Complete is.
Hey prime! How do you work with terminals in vim to quickly compile the code or smth? Currently I have been using floaterm but I have been noticing some issues with output being cut off, so Im on the lookout for alternatives
I'm really new to programming but I'm happy that the community was so encouraging. I was so scared going into it because a lot of it is math and I struggled wage some kinds of math in high school but it's more like... The computer is like me and operates on pure logic but you need to tell it the rules. And that's a really accessible concept. I'm starting on python and when I'm really good at that I'll try out JavaScript and a version of C. I'm happy that there's so much information just out there for free! And people just post their code online for you to work with when you need it. I'm hoping this will be a thing for me
If it's something you know you want, try not to take long breaks from coding. Those breaks have been the biggest mistake of my study "journey". Life would get in the way and I would do other things and not code for an entire year then have to practically restart from the beginning. Restarting takes away all the fun and makes it harder to actually get through the learning.
@@yellaturd I'll remember that! Rn I'm on a trip to Japan and don't have my computer so I can't really continue for now but once I'm back home there's nothing I can think of thatll stop me
Man, good documentation rocks. Read documentation in your own time. I got good at programming and understanding problems by going through documentation.
i have one performance video out already (Go vs TS) and I about to have another. Very different, different domains, different problems, both showing the same results. JS is not great for back end and costs a lot
About creativity vs technical skill... I completely agree with you. The observation of technical skill driving creativity is something I've felt all too much as someone with more creativity than technical skill... What's the point of having a super awesome idea if I can't execute it? Also, how would I know if my idea was even unique if I didn't also possess enough skill and experience?
I find this quite interesting. As you said about when beginner programmers think it is all copy and paste, and that they don’t know the language, it is a harsh reality. One and a half years ago I was learning react for the first time, with my only knowledge of JS being copy and pasting, and I of course now know it, but oh boy was that not fun. So yes if you’re new try not to google, in fact I would say maybe try a week or two without an lsp.
It's like cooking. You don't need to know the theory of cooking to make great food. You don't need to memorize anything, either. But the more you know, the finer and more diverse your dishes are
I think Python or Javascript are good for beginners to try out programming, but if you are forced to learn it (like college students), I think it's much better to start with the fundamentals like C.
No, it is not. "College students" can mean a whole lot of different things. If your degree is Computer Science, then ok. If your degree is Physics, why would you need to learn C, only to end up using very simply Python in 90% of your daily work? In any case, you would learn FORTRAN, because the other 10% will be FORTRAN in many, many fields. There is absolutely no need for a physicist to know what does dereffing a pointer mean. Zero need.
Man I've been learning nodejs for months, i wanted to be a backend developer with node but you said that we should stop using it and now I'm unmotivated 😔 What backed language should I learn, i wanted Java but in not sure
A lot of companies are using Node to allow developers to use the same language across the whole stack. It may not be the most performant but that's not always the main concern. I say stick with the thing you started with until you've been working a while. Once you get into it, picking up a new language is no big deal.
I'd say you can't go wrong with either Python or Java. From a small glimpse at top companies they always throw a wide net on language/framework requirements, mostly because they use a little bit of everything depending on the situation. And once you have a few years of experience in your pockets you can branch out to Golang or Rust. But yeah, where I live there's close to no Rust/Go openings especially for junior developers. For all the hate Java gets, it's a popular language to get a junior backend job with. And don't discredit Node.js as a starter, or even Nest.js which uses TypeScript (but it's less popular).
The amount of people who are actually passionate about their jobs seems to be 20% or less...most people are just passionate about not starving or loosing their home. We choose careers that fit our aspirations and skill-set as best as we can. You should defnitely choose a job you're happy with, but finding one you're passionate about seems to be only for a lucky few...
JS is fine for backend, especially when the none technical people asking for features come up with requirements, timelines, and disjointed implementation scheduling that make churning the code everywhere a daily. With the advent of bunjs I really think TS will be fighting C# and Java.
My stance without a degree on the degree part: It's harder. You have to put in a lot of time and effort and you always have to proof, that you're fit for the most stuff. In the end I think I put the same time in learning this stuff as studied people did. I missed some corners but got more in depth in others (e.g. category theory > analysis). If you have the chance: Do a degree. Even if it's just for the certificate and so you can proof that you have the basics. Right now it's gotten a lot easier. My job track record is getting better and beginning to be worth more than a degree. But the way was hard. Like REALLY hard.
Who you know definitely helps. It doesn't let skip the technical interview, but it can definitely put your resume at the top of the stack and help swing the debrief in your favor.
I think C is the best language for beginners. It gives you a solid foundation on what's actually happening with the CPU and how is memory allocated. Obviously it's not the fastest way to land a job, but building on top of a solid foundation is always better then on a leaky one.
I just don't agree with this anymore. To much of your life will be spent without having to know these things. BUT i do agree with you fundamentally. If I could have it my way, this would be the way. But I cannot. So I think JS is the next best. Discover what you like, pursue it with passion.
@@ThePrimeagen It seriously depends on what your career path is as well, I think many people equate software engineering with web development. If you are working on a systems level then C is obviously the way to go. As a general statement I would agree that javascript is a good first language for beginners since MOST people seem to move towards web development anyways.
@@spencerwilson-softwaredeve6384 yes agree with you, a lot of people nowadays think software engineering = creating web applications. I agree with the original comment, C can give you great fundamentals for Computer Science and software engineering as a whole, obviously I’m not talking about mastering C, but learning the fundamentals. Even if you’re just gonna build web applications I find useful to know the fundamentals if you really want to be a good software engineer
I can't decide whether to be technolgicaly agnostic or deep dive into one technology at really high level... (To be specific i do mostly backend in springboot,kotlin but now got to work with python and flask... Should I continue with springboot or be technolgical agnostic and work with flask and python)
Formal education is required in India, even small variation can ruin your job opportunity, like companies in india prefer engineering graduates than science graduates in bachelors degree of computer science.
About getting a job without college: I agree that it's easier, but that shouldn't deter if you if you can't afford college or don't have the time for it. I did a bootcamp, it was fine (they're not all scams, you get out of them what you put into them, just do your research first). But without a degree, be prepared to work from the very bottom up, you're not going to land a 120k salary coming from a bootcamp. If you want to get a junior frontend job, or intern on a DBA team, you'll be okay. Want to go into data science without some university stats? Nope. At the same time, if you're from a college that doesn't have a good reputation, that might actually hurt your chances compared to someone honest about being self-educated and willing to work harder to make up for it.
Devil's advocate for learning Rust over Python: Package Management, Documentation, and Error Messages. Also the strict rules in Rust are seen as a barrier but they helped me develop a better understanding of programming earlier on. I can expand on those points if interested. For context: not a CS major; I used python for 13 years, started learning Rust 6 months ago. I find rust easier. Matter of taste, I guess. Love the channel, btw. Dvorak ftw
@@ThePrimeagen Thank you for reading and replying! I hear you, and I know I'm an outlier here. Not saying Rust is easy, but I've honestly found it easier than Python. Not a popular opinion, I know, but that's been my experience. Already I understand modules and directory structure in Rust better than I ever have for Python. Same for dependencies. After a recent migration to linux, my main Rust project was up and running in no time, but I still can't get the equivalent Python project and it's dependencies to work. Somehow, I frequently find myself in this place with python: Troubleshooting the setup, not the code. This hasn't been an issue in Rust. Rust- the actual language- might be more complicated, but when I hit a snag it's been a short, definitive path to the solution. I rarely make it past my top bookmarks: The Rust Book, Rust by Example or Easy Rust. Plus the API + Book combo for most crates is wonderful. I'd take a complex language with amazing docs and examples than an "easy" language that, for me, has been a struggle to parse the signal from the noise: lots of rambling blogs; lots of ads and filler; API docs are endless walls of text on ((shutters)) a white background. For those reasons Rust has taken me to a deeper depth of programming in a shorter amount of time. Not to say I'd recommend it to all beginners, but there are weirdos like me that found python challenging and rust less challenging.
Far less experience than you & only partially into my Rust journey, but I totally agree on Rust helping to give a better perspective on a number of aspects. It forces you to think about what you are doing, whilst giving you the understanding of why, which is so valuable. Everyone has an opinion when it comes to good & bad languages (in their view), which only makes them look foolish. Rust is widely accepted as being loved, for good reason- but you still find the devs that consider C to be a biblical gift & Rust is therefore pointless.. irritating. That’s the sad part, the diss on various languages really muddies the waters for beginners to pick a starting point & despite what some will say, it can shape the course of your future. Starting with C is quite likely going to shape a different path to learning Swift or Kotlin or JS. Not always, of course. I wish Rust was a prominent option for beginners when I started, as I am absolutely certain I would be a better dev as a result now, albeit with some differences in the work I do now. The TLDR; quality learning, is the best learning. Knowing why, often beats knowing how. Appreciate your comment, let’s spread the good word about Rust 🤘🏻
6:08 "Is your motivation going to wane to get better? Yes it is. Will I miss pronounce 'continuously'? Yes I will. Will you not be as good as the person who is passionate? Yes you won't"
such facts. I have never actually met a person who has done this, just trolls on the internet which I am pretty sure are just russian / chinese bots at this point.
In terms of college, my only comment is I personally wouldn't go to a private college unless I was: 1. Rich 2. Going under a full ride scholarship with books, room and board included (which requires hard work and good grades in high school) State colleges are fine and they're usually a lot cheaper. Stony Brook is a great school for computer science if you're in the NY area and it's cheaper than Columbia, NYU, RIT and Adelphi while being just as well respected. I don't agree with people who say college isn't worth it, but I do believe in shopping around and seeing that you're getting the most for your money. Just like a job interview, you're interviewing your potential college too. Great questions and statistics to look up are: 1. What percentage of graduates are working in their field? 2. How many graduates are working at companies that you would want to work for? LinkedIn is great for this and maybe a fun project would be to scrape the data on alumni employment at the best reviewed tech companies based on the top ten state schools in your state. 3. How relevant is the curriculum to what you want to do? Are you interested in game development? Are you more into AI and computer vision? Are you more of a robotics person in terms of software? It's very important to nail down a niche and pick the best college to achieve your goals that is within your budget
What do you think is the biggest lie in tech? (don't reply to this because i don't see it).
make sure to check actual top comment
Please prime, DO NOT see this comment
ok
Bold of you to assume that we know how to read!
your comment is the biggest lie!
Being creative in programming requires technical knowledge and lots of it. How are you going to come up with "creative" solutions if you don't know the possibilities of your tools?
One of the big reasons I like to dive deep in the docs after I get a feeling with a tool and build something small with it
Exactly but I don't know who you are arguing against. All the people who think math isn't creative think so because they have never reached a good enough level at math where math has creative parts.
Yes, that's so spot on. Still, I would add that this also depends on the level, what you consider creative at some level will be too obvious to be considered creative at a better level. Some algorithms that would seem pretty obvious to experienced programmers are creative solutions when students that have been in contact with programming for 2 months come up with them. I always though math was creative. People who don't think that generally have never gotten good enough at using math tools for it to be creative and this doesn't require uni level math, we had quite creative math problems in math competitions in middle school.
@@DipsAndPushups Creativity ends where best practice is started.
@@DipsAndPushups I have always hated how math was taught in schools because schools took the fun out of exploring the relationships between things. The way I did math on my own was always so different than how school taught it because I was more interested in how more complicated things were related. Although I didn't start out knowing much I very quickly found relationships between things as soon as I knew the elementary rules of algebra because algebra was really fun to play around with the symbols and substitute equations. So when I started learning programming I saw it much the same way, first you learn some of the syntax and then see some of the programing techniques used to make programs and then ideas kind of just come to me on what else might be possible and I try and implement it if it doesn't work I look at what the error is and try and fix it.
The biggest lie told by online programming courses is that their product will make it easy for you to jump the gap from no professional programming experience to your first coding job. Landing your first coding job will very likely be the result of you applying for dozens or even hundreds of jobs, even in a job market that favors employees.
I had a job in IT for 7 years, 5+ years were in developer roles. Still took me ~200 applications to find a job when I was moving to a different country. Be kind to yourself when searching for a job. It's not a failure of your character if you don't land the jobs you think you want for yourself. I found a great company where I am happy to still be for the last 5 years!
@@sinzies thanks for saying this, I was bummed out for receiving some nos this week.
Even with a cs degree and one year of experience, i still had to send out over 100 applications to get a job. The hiring process is bad for everyone involved.
...Usualy true. Somehow I ended up on a 12-week bootcamp by a contracting company that put us square into a 6-month contract with a major insurance provider, and the contract was pretty much just to make sure that we weren't useless before they hired us properly. And they paid us during the bootcamp (not much, but still).
But the main thing was that they were looking for people who aready had *some* knowledge. The curriculum was set up as if we didn't, but of course something like that got tons of people interested.
And beyond poor management it's actually a decent job. Work from home, short fridays, and they explicitly want us blocking off time for ourselves to learn on our own so long as we're getting our work done at a reasonable pace.
very true i applied to 400 companies got two calls and luckily got a job. That said it was only 4 months from when i started learning.
Prime I absolutely love that you bounce between high-energy fun-loving twitch-streaming professional goof and then on the other side, gentle mentor with real advice for any developer
you are welcome. Thank you :)
I agree Prime really soothes my adhd mind
I agree 💯
He's that rare chaotic good character.
I just realized he's basically Bill Burr of coding. Even the voice is similar.
A quote I love: "Coding is to programming as typing is to writing"
Just because you can type, doesn't mean you can write a good novel. Just because you know the syntax of a language, doesn't mean you can design good software.
Learning to code is easy. Learning software engineering is a never-ending learning process.
Bingo. You've perfectly articulated what he was trying to say regarding "programming being easy". Learning to code is easy (typing), learning to build programs (writing) is hard
So true!
WORD
wow this was a great break from all the "tech" influencers. I seriously question how many of them actually work in tech lol
These are facts my friend
@@ThePrimeagen absolutely yes
When I was a kid I wanted to be a pilot and an engineer and finally a programmer. Nowadays kids just "want to be successful influencers". Such a ridiculous thing to say, yet so common nowadays.
None, the answer is none.
When it comes to a tech influencer. I seriously think when they fail at what they do, they just see if they can lie about it on TH-cam.
David Plummer from Daves Garage is the only real one in my honest opinion.
Today I saw one here on TH-cam recommending begginers to use redux with next.
And when I said in a comment that they shouldn't use redux because a beginner level project will never be complex enough that redux will actually help, he just responded "Bad advice, totally disagree" and didn't care to elaborate.
For context I was an architect in a project where there was around 40 people working on it, all them were either juniors or interns, those who weren't were the tech leads. NONE of the knew how to use redux properly so it was a HUGE mess even though I created a structure that they could just copy and paste.
But the guy on TH-cam said beginners, who barely know how to use hooks should use Redux 👍.
Its been 9 hours since that and I'm still pissed.
I can’t get over how many of these twitter accounts exist solely to post click bait questions about tech. I’ve muted so many of them and I’m only 3 months into learning web dev.
You are a smart man. Go forth and prosper my friend.
@@ThePrimeagen I’ve heard of Go and Forth but not Prosper :P
Yes! Way too many twitter accounts posting how to learn to code and it’s an article about html 😭
@@henrypl360 Tbh when I started learning react for me when a dev or an influencer talks about it I feel like they are just trying to get views but I still don't mind. But boy when you get deeper onto frameworks it's like a room behind the "Create A Website" conference and life is beautiful yet complicated.
It's been 2yrs are you a swe now?
Biggest lie new devs get told is that bugs are just from coding errors, in bigger and more complex products there can often be more bugs from requirements and design than code
Yes, bad analysis and bad requirement engineering are the best recipe for a disaster. Iterative approaches try to somehow remediated these problems, but for sure it would be better to avoid the problems from the beginning. It's just: upfront analysis and RE are not easy (when you want to do it properly) and you don't have many tools that would help you to verify whether you're right with you're output (like devs have compilers checking the syntax, unit tests checking results etc.)
The worst is when it’s not even a bug, but a situation where the meeting the requirements has become impossible because people kept just hacking through whatever requirements were given at the time by non-technical people, and now there are architectural limitations that mean you have to either give up on the new goal or rebuild the whole damn thing.
@Clau007 and completely overlook that different requirements contradict each other.
To say "Overanalyzing is no good" is practically meaningless, at there is no measure by when something is properly analysed and by when something is over-analysed. Everyone can agree to that phrase and still have a completely different view on how much up-front analysis is good.
@@brdrnda3805 Tbh there isn't really like over analyzing and it should never be a thing which I agree to your other statement. It's a concept that works to big companies. Like in a factory, everyone has a Quality Check that goes through the process to make sure that quality is up to the standards.
😬 managers that change requirements - so the customer likes them - for code you tested commited and approved already, and later blame you because it's not working and as "their developer" you should fix this "small issue" quickly .... sometimes it's really fortunate if you can't see someone in person ...
Let's get real... Bootcampers get raw cause they are struggling to break into the industry after being sold the idea that some camp/product will land them a job. That first-job hunt is stressful and it sucks. I went to a bootcamp and now I work at Google -- does that invalidate CS degrees? ofc not... and let's not skip the fact that I spent years programming 80+ hours a week because I love programming. OK... Yes.... half of that time was spent configuring vim... but that's not the point! Would I go back in time and replace one of my degrees with a CS degree? absofrigginlutely
I can't work more than 5 hours a day 4 days a week or I burn out. Bye vimrc. I love you. Maybe one day.
this is TITS in a nutshell (Time In The Saddle).
If you put in the work, you get the cookie. Its just a fact.
What's a bootcamp? I don't think we have that in Egypt
@@kalojim2699 it's not camping lol. It's community driven lessons from what I understand. I've been in one.
@@kalojim2699 a programming bootcamp is an in-person or online intensive training course to learn basic programming skills. The term is pretty loose now but most people that talk about bootcamps refer to a curriculum spanning a couple months with multiple stacks of technology.
"Python is easy for beginners" is way different than "Python is good for beginners".
Sure… but both can be true.
One argument I've seen about Python as a bad beginner language is that it's so easy that it can make you get used to easy syntax, and as someone who kinda trampolined into programming with it and is trying to learn Rust I've definitely felt that. But it's a double-edged fact anyway: it can make things harder later, but it makes things so much easier to start
that is reasonable. Simple syntax can make other languages harder to look at until you are familiar. And like you said, flip side, its way easier to learn any other language once you have one under your belt.
This is why you start with C I started with Java and Currently learning C after I tried learning Rust and realizing I ain't gonna go anywhere until I realize what rust is improving upon C++ so I now am learning C will move on to C++ once I grasp the basics of low level programming than go to Rust. I am Hoping this will take me 2 years since I learn at a slow rate and allocate more time on my academic studies.
@@asandax6 High level languages like Javascript and Python can lead to so many poor habits too. Common theme I see in Javascript is people thinking it's cool and great to try and condense as much as they can into one line of code. For me, readability and performance come first. See a lot of people condensing into 1 line arrow functions and referencing a function several times rather than storing it and referencing a variable several times instead. Learning a more structured statically typed language stops more (not all) bad habits earlier in my opinion.
That's a good point. My first language was C#. After about half a year of goofing around with C# I decided to learn C++ because I wanted to make a game and apparently C++ is pretty popular for making games from scratch. But not being too familiar with the notion of pointers and memory allocation, I had a very rough and demotivating start. Thankfully I was able to discover some awesome tutorials to fill in the gaps, but the switch to C++ was like a cold shower for me.
I don't know
I learned PYTHON as mine first programming language. I heard that C is hard to learn. I started learning C and it was very easy. I learned in 5 to 6 days. Then it took me almost 2 to 3 days to fully understand pointers, arrays, double pointers etc and more 2 to 3 days to learn dynamic memory allocation.
I cannot really understand how learning python is bad for noobs. If you ask me then C is more easier then python.
And it took me almost 5 months to only learn syntax and builtin functions/methods of PYTHON since it was mine first programming language. C is very small as compared to PYTHON
I actually think a statically typed language is the best for beginners where the learn the concept of types. once you learn the concepts of types i believe is much easier to understand classes/objects.
I agree. Javascript and Java were designed with a lot of shortcuts for coding. But we only understand these shortcuts by first knowing how a low level language like C is written.
I don't have many opinions about Rust and Python though. Python is great at creating scripts quickly. Rust is great at creating backwards compatible low level libraries. These languages are designed for a purpose and are good at those purposes. But Javascript and Java try to be a bit more generic so I think it ends up being too messy.
Just my personal opinion. I code in javascript regularly even though I dislike it.
@csbreadbrothers I also started with java, then learned C, then some python, What I found super useful from C currently working JavaScript front end is pointer, man do they make things clear, I have no idea how they refer to it in JavaScript to this day but array of pointer makes soooooooooo much sense
I was taught Java first for my degree, and I’ll say that it made other languages a lot easier to learn because it usually resulted in “wow! That’s so much easier than Java!”
@@chriswalker7408 I remember the install message "Java runs in 5 billion devices around the world". I'm pretty sure the number of Android devices running is already way more than that today xD.
@@chriswalker7408 I don't remember Java being as hard as trying to figure out whether or not someone intended a variable in JavaScript to be used as a boolean or a number or an object or string containing the secrete code of the universe.
One of the best quote I've seen is: "Success is when preparation and opportunity meets" meaning you don't just need to work hard but you also need luck to be successful. This does not just apply to CS, it applies to every field of life.
I feel like your take on if you need a degree or not is spot on. I've been a software engineer for 22 years and I do not have a degree. But I have also cautioned friends and family, who look to my success as evidence that college isn't necessary, about the difficulties I faced getting work sometimes. As I became more experienced it became easier, for sure, but those first few years it was hard. A degree *can* open some doors that would be otherwise closed.
You have the same knowledge or even better than those who have the degree. It's just a title on paper proving what you have learned from school but experience says louder since you actually did the job and not just conceptualize. Same goes for if you're learning programming or doing software engineering on your own, the best way to learn and prove yourself is to come up with simple projects that would prove the point that YOU can actually do the job. Proud of you sir - College isn't necessary in some jobs. But of course obviously, doctors they need it hahaha
You probably live in the US. In europe you can't get a engineering job without a degree or what we call a "Techniker"(technicion) it's like a degree but it's made for people who learned a job by trade and covers the area of a full degree you actually need in your job.
@@MrHaggyy That is interesting. Is this only for engineering jobs, or other types of work as well?
@@AdamPresley "Techniker" covers engineering jobs, "Betriebswirt" cover business administration, servant, etc. And we have a view titles in practical medicine. They all run under the "Industrie und Handelskammer" I don`t know how to translate this well. It`s an institution by the government that provides exams. Usually, a company prepares you for the exams they need, but you can do them on your own as well. You can`t become a doctor or lawyer that way. And usually, companies prefer someone with a degree for an important position, but you can get pretty far with it
@@MrHaggyy Thanks for explaining that. I think it is pretty cool that these companies will help prepare for the certifications needed to work. Everyone wins. The company gets an employee who wants to learn more about the trade, and the employee gets help for what they need to grow.
100% agree about "it doesn't matter who you know" in tech - one of the best parts of our industry
People who say this often don't understand what its like in other industries. My brother in law, 6th in olympics in swimming a few back, had a hell of a time getting into lawyering. He passed the bar and it took a lot of "who you know" to get somewhere.
@@ThePrimeagen damm 6th in olympics, pretty impressive stuff. yeah, tech is suchhh a good place to be rn if you have the skills.
@@ThePrimeagen damn for real? What's his name? (not that I don't believe I just think it's amazing ahahah)
@@qwerasdfhjkio Scott Spann
Knowing people can be a very valuable asset, even in the tech industry (or maybe especially). Not saying there are not opportunities if you don't know anyone (there certainly are) but saying "it doesn't matter" == false.
Having contacts from meetup groups or conferences, not burning bridges with former bosses or former coworkers, etc such that you can reach out to them from time to time can definitely be very nice to have.
As a someone with a BS in CS, I’m in agreement with you. I could have learned what I know now on my own, but it would have been so much harder. And the thing about how hard programming is or isnt, I agree. I think most people can understand the basics. Like, if I explain how an if statement works, most people understand. But beyond that it can get really hard. But a BIG thing is the individual. Some people’s brains work very logically and so programming comes much easier. And even within programming, some people struggle where others don’t.
Also programming can be very different depending on what you do.
Like what hardware do you use? Microcontroller - Microprocessor - ASIC - CPU - GPU - Mainframe?
Do you make new algorithm and don't need to write a single line of code like ever? Do you implement those algorithms in any language or framework? Do you build a system out of these languages like ARM, Intel, Nvidia or Apple do? Do you develop an application for something? Or can you fit a developed feature into market requirements? ... Or do you just make YT?
Totally different skill sets in each of those categories, and each one needs thousands of really smart people.
Another factor is how its taught; the programming classes I took first (c++) would just throw concepts at you and I bothered to remember absolutely fucking none of it because why would I?
"This is how you write functions"
"Cool, I mean I'm not sure why it takes this long to explain it, but cool, get the basics done!"
"These are function prototypes, they do absolutely nothing and we are forcing you to use them"
"Uh, wtf? What could even be the theoretical advantage of doing this?"
---
"This is how you use different files in one project!"
"Aight, I can see value in that!"
"This is how you seperate the header & implementation, you need extra steps because it wasn't designed to work like this well"
"That just, what? So you're fighting the compiler just to go out of your way to double your file count while seperating basically zero complexity? Why?!"
"Fuck you, do it"
---
"This is a for loop"
"Aight, neat."
"By the way remember iterators too"
"Wai what, can yo-"
"Moving onto the next uni-"
"No, wait wait, what the fuck are iterators? Why do they exist if they are just a more complicated way of writing a for loop?"
"I said, *_next, unit._* "
In contrast playing through Turing Complete halfway one time and then learning about C & assembly not only taught me how these things actually are, but since I basically had to invent the concepts myself I also understood *_why_* they were how they were and knew details about them I wouldn't have otherwise. (For instance arrays are so quick at random access because they are literally like two instructions, arguably 0. This is ALSO why vectors aren't the same & why vectors are generally worse, despite being purely better on paper)
Honestly the copy/paste stuff has been something that I've observed through my progression as being something that comes with time for a language. It's easy to copy and paste something, but it takes knowledge of the language and your code to alter it to fit in your program.
YES.
Tired of the id¡ots who seriously say "it's just copy and paste". No. Anybody can smash a nail with a hammer but not everyone *understands* how and why the nail goes in place joining the structure.
Also: the devil is in the details.
This is something I've seen in myself, too. I'll find myself copying/pasting a lot because I don't remember specifically how something is written but functionally I still understand why/how it works. You don't need to reinvent the wheel every time you need another wheel
Wow, I agree with you a lot that the take "technical skills do not matter" is ridiculously off the mark.
The most well paid engineers today are those that work on large scale production systems at big tech and large telecom companies. I've heard stories of some even making 1 million dollars in yearly salary.
To get these positions, a recruiter needs to contact you (don't call us, we'll call you), and you have to be a swiss army knife programmer, because their selection process will test you on algorithms, coding problems involving concurrency and IO, operating systems, troubleshooting, networking, systems design and management and cultural fit, and you need to score well in all of these to get a shot at the job.
I find it so cute when someone starts to write code for a startup or software house using some framework and assumes that's all there is in programming.
It was probably written by a person who, like myself, is "forever senior". When you know, say, 5 languages picking up new ones becomes easy and stops being a limiting factor. Those most well paid engineers, in my experience, are technically no better than a median google engineer who gets nowhere close to that.
@@Turalcar Well, I partially agree with you. To make a lot of money, you need to think like a business, you need to think about market size and competitive advantage.
From my experience, the programmers who make a lot of money are extremely good at a very obscure set of skills that support a huge market, and if you don't have above average skills and put the effort, you can't even attempt that.
I see your point that the median google employee has everything lined up to do this kind of job, but the reality is that most don't want or don't care.
I am of the opinion that it doesn't matter if you could in theory do something. The fact is: you didn't do it, and that's the point.
"There is always luck in every success story" -ThePrimagen
its true. luck will always be a part of everything.
My response to the "programming is easy" section:
It's part Dunning-Kruger effect for sure. For a long time when learning programming it's impossible to separate the concept of *programming* from *programming language* and people that don't program at all definitely can't make that distinction. They look at code and don't intuitively understand what it says so they don't understand the immersion of programming. In the head of the developer we aren't just staring at a screen with colorful text, we're in *the zone* and our brains are acting as the compiler/interpreter/runtime, and running the code in our heads as we type. We can immerse ourselves into the software we're writing, and not think about the exact syntax of the text on the screen. Especially with the tools we have access to these days, it makes it almost effortless to do the code-writing part itself
The syntax and the code itself is *everything* to a person just starting out, and when they're getting the hang of the syntax, they think "programming is easy!" but in reality they're still stuck in syntax and tool land. Whereas experienced engineers don't think much about the code-writing itself, but our heads are in the problem space we're working in. The language we use day-to-day is just a background thing you can do as naturally as speaking or typing an email.
When trying to make optimizations or refactoring, the focus becomes somewhat about the syntax or semantics of the language, but again to an experienced engineer the focus is about leveraging your knowledge of the language to solve the problem in a more efficient or idiomatic way. Not "Oh if I put an asterisk or an & sign here maybe the error will go away" land that happens when you're new to a language and stuck in syntaxville
Biggest lie to me 10yrs ago who lure me into this industry: you don't need English to program, it's just a combination of letters but not the same.
that is definitely just not true. whoever told you that has to be mistaken :)
I think one of the biggest lies is how people just focus on programming languages when talking about what you need to be developer. The ability to program is just one tool in your toolbox. Other tools like engineering processes, understanding how databases work, cloud, software architecture and a lot more are all extremely important. I appreciate many of those skills will be picked up with experience but I think it’s still important to mention especially for people in lower skill positions looking to grow.
Biggest Lie On TH-cam: Hot Takes are Best Served Solo.
Next time bring a friend.
(If this is top comment, let's make it happen YT)
deal. Make this top comment and we will get a four way
@@ThePrimeagen RIP Looks like I'm losing
My biggest takeaway was when you said "You can kind of WASM..." and now I'm going to be using WASM as a verb till the end of time
Best takeaway really
I know from friends experience, both coworkers both hired in USA.
Uni Degree: please mr. come this way.
Not an Uni Degree: who are you? why would we take you? please produce some proof that you are qualified.
yeah. this is very true. Not needed, but damn does it open doors WAY easier
I picked up programming when I was 19, I had no I idea what people make, I was actually thinking that programmers just make the same amount of money as office workers but the job was way more interesting. And then somebody told me how much programmers make. I did not know that you could have an interesting job and make good money.
Want to know the most painful programming thing I've ever heard? I asked a guy who develops and sells some business application for a particular industry (for like 15 years), what language it was written in. He answered "visual studio" so I'm like "Oh yeah, but what language?"... he didn't know :P HOW?
Take my like, i almost believe u
@@chefaku nah, thats just typical marketing guy
I think he confused it with VB. 😂
This is the biggest lie about programming right here
@@mohammedshamil1626 It's funny people think I'm lying. There's quite a few terrible point & click, copy/paste programmers out there that know some minimal things about the few tools they use and nothing outside of that. That said, I was shocked that he didn't at least know the *name* of the language he was using XD.
I picked up programming as a hobby last year. I can confidently say it is one of the most enjoyable activities I've ever undertaken.
on that team!
Your takes show how down to earth you are.
Some of my feelings: you don't need to have a CompSci degree (I don't) but self taught folks are loosing out if you don't pick up some textbooks.
Absolutely agree about passion. If you want to be excellent you have to have passion for what you do.
IMO much (not all) of what people call luck, is taken up with social skills. I'd rather work with a slightly less competent but easy to get along with coworker, than a jerk who is a little more competent. Of course there's no conflict between being competent and easy going, so people should strive to be both.
I also hate the takes on salary. It's relative, and who cares if someone makes a ton more in SF. There's more to life than salary.
such facts here. Thanks for the nice words too :)
social skills that make you easy to work with and that get you promoted are only loosely related
I was a self-taught programmer, I started in 2002, and then in 2007 I went for a degree, I finished it in 2013 because I was only doing 2 classes per semester, because you know, I worked.
Totally worth. I learned so much more about soft skills, discipline, business, even the compsci theory, which is also important.
Sure, you can get those from textbooks, but its much more cool when you can have discussions with a teacher and other people. Its about the people, not the content.
Legitimate question: how do you have time for work?? You crank out high quality content so fast
These ones are actually really easy. Its twitch and the very curated videos that are hard. that is why they are usually +1 month away from each other :)
The reality is I try to crank out work very fast.
11:11 lgoic gates are easy and the basics of programming is easy. the hard thing is making a working computer out of logic gates. in theory it is easy and you can learn how you have to arrange the logic gates for it to be a working computer within a few hours but do that without a helping hand that is showing you what you need to do and you will take years to figure it out yourself.
there is for example the steam game "Turning Complete" where you go from an "and gate" to programming the computer you have build with the gates within a few hours, so it isn't hard to follow the game and build it but it is hard to do it without the game trying to figure it out yourself.
the same is with programming in general. the basics of the logic and the basic words and syntax of the language you are using are easy to learn, but if you are starting to import plugins and try to work with different plugins at the same time while doing a 1k lines project, you will find that you will be searching more through the internet and documents than actually coding because you don't know the words you need to do what you want. that is the hard part. sure we have for almost everything a plugin but we are lucky if the documentation of it is enough for us to figure out the way they want us to use the words without creating bugs and edge cases that break the program half the time but not always.
logic gates are not easy for everyone, just like in a lot of other aspects of software engineering. If someone is good at/like/understand math they probably will have no problems understanding logic gates. But with no proper formal education, or just bad HS education, is completely expected for someone to need some time before algebraic logic makes sense
10:40 as a beginner i feel that so hard. Learning and understanding what all the individual parts do is really easy but the moment i have to put them together into a properly working program i sit there like "...well shit" and i feel dumb as a brick
Something also dope about side stuff is the cross pollination of ideas. I know that lots of that sort of “hey I saw how this one piece of tech did this one thing in a really cool manner, how hard would it be to bring it over to this ecosystem?” Those sorts of moments are magical
Such magic :)
2:40 Especially when a compiler could compile the fucking exact same exe binary out of all those different writing styles. 🙄
something you also did not mention is the personality of people.
Some people are good at being self taught and learning everything by themselves.
Others need a school to get a more structured and organized and "forced" to do someting.
I am definitely the latter but prefer buying a course rather than wasting time learning unnecessary units
just reminded me of Wizards First Rule --> "People are stupid; given proper motivation, almost anyone will believe almost anything. Because people are stupid, they will believe a lie because they want to believe it's true, or because they are afraid it might be true. People's heads are full of knowledge, facts, and beliefs, and most of it is false, yet they think it all true. People are stupid; they can only rarely tell the difference between a lie and the truth, and yet they are confident they can, and so are all the easier to fool."
though cynical has a lot of truth in it :)
@@ThePrimeagen you're right, it's pretty negative! I personally don't think everyone is stupid.
Great video. Re. creativity and communication: software engineers in the upper ranks tend to have responsibility for larger, more fuzzily-defined projects. To succeed, they might need to to come up with fresh ideas (new product feature, new research direction, etc.), and they might then need to convince others to commit to working together on it. This is hard, since it's new skills to develop beyond pure technical skills. But yes, the technical part is still hard and still important.
yeah
For me its creativity is a must. Just has to be every where. Second technical skills. Third communication skills. You don't have to be the best communicator to get your point across if you know how to use data and spread sheets. Often you need to only convince one person and you have gained a champion for your project :). But, without the technical skills, you can convince all you want, you just cannot deliver.
Self-taught and have gone pretty far without a degree... That said, there are times when having a more structured education would have filled in gaps in my knowledge that have bit me and taken days or weeks out of my life on multiple occasions from having to "go back to fundamentals" of a given way to approach a problem.
I have formal education in IT Engineering because it was easy and shorter than a software engineer carrer and I really empathize a lot with self-taught people. In a lot of instances I see myself lacking the knowledge to hop on in interesting fields to experiment with in my free time. Just gotta keep learning i guess
Omg the clean code comment, thank you. The only objectively good code is tested code. Otherwise when we're saying "good code" and "bad code" all we're really saying is "code I understand right now" and "code I don't understand right now".
If you rewrite some old untested code and don't add any tests firstly you've probably broken it, but more importantly you haven't really contributed anything to the codebase at all. Rewriting "bad code" is a net negative without tests. If you are rewriting code to "clean" it without tests then you are actively harming your codebase.
That's a letter to myself from 12 years ago. Lol.
If you think Clean Code is just about splitting up method, you got it wrong. It's about making your code so you and your team will have LESS work to do with the next changes without pain.
I'm pretty sure the tweet meant clean code as a general concept not the Martin's abomination
Prime: misreads a comment
Also prime: "I think what they're trying to say"
i never misread anything
ever
Damn, almost done with my bachelors, and now Primeagen tells me I could get the degree without having gone to college...
get wrecked ked
I took the "follow my path and you will get to the same destination" as the file path.
Which only works on default installs and 50% of the time seems to be changed after some patch/update was applied :D
Please respect Prime, "3 billion devices run super fucking amazing Java" hahhaha Nice video bro!!!
I thinking graduation is important, and its more easy to get the first job with that... calculus very important if some dev want to move too data science too
I still think of calculus as one of my most used classes though I NEVER do derivatives or integrals or math in general. Its the ability to look at a problem, take it apart, and attempt different strategies.
"clean code" matters a lot more in a team setting than if you are on your own
But what does it mean and can you all agree upon it?
@@dweblinveltz5035 Well... some of it.
@@dweblinveltz5035 standard?
Really enjoyed this video! Great point about learning the fundamentals instead of reaching out for a google search straight away.
thank you! Its something I have taken away from a friend of mine who always seems to know things I don't. I realized he takes his time to recall it instead of just looking it up. Really ingrains it into your head.
This is a big one for me. For me I can usually detect when someone copy pasted code without full understanding of the solution. This behavior drives me nuts. It also hurts you as an engineer where you’re never actually solving issues you just become good at searching for a solution.
I accidentally found you because I was trying to understand the "how do you close vim" joke. What a journey.
I read a brief study one time (tried to find it again but couldn't) that showed a big chunk (i will say 1/3 based on memory) that graduate from CS degree end up not using their degree. Another big chunk of them end up not finding a job in time and being forced to move back home and work a regular non technical job. I think somewhere around 30% actually have a full life long career with their CS degree because everybody else ends up having a new career without CS. This was explained by people graduating and realizing that the industry is very different from college and then competency needed for the industry is very different from the competency needed for college. Some end up just giving up after struggling to keep up with the industry. Now I'm pulling this out of my ass right now but only because i cant find the research again. I think it was by MIT or something. Also the tools and methods of programming in college *often* end up not reflecting practices in the industry. I hear that a big chunk of graduates come out only knowing OOP and inheritance and very few tools and frameworks and nothing but academic algorithms that got them through school. Of course it all very much depends on the school. It all varies from region to region. I dropped out of college due to some health related problems and some technicalities with the school i was at but I've been self taught for over 10 years and i still struggle to find a job cause i live in a rural area where you NEED a degree. But right I'm in the process of maybe getting a job with Amazon in Seattle which would require me to move. But still, industry still favors degrees but they are shifting towards self taught, and the degree is depreciating. But hey maybe the research in remember wasnt formal or never existed and I'm just taking out of a hat. But i know a lot of what I'm saying is true.
In the UK, I've been told by many recruitment agencies that none of their clients are interested in hiring people without degrees, or many years of industry experience.
A little bit of coding skills can take you a long way. It has nothing to do with how good you are at it. I have many dozens of scripts that don't go beyond ifs and for loops, but they do make my life easier. Scripts to download videos, watching stock prices and setting alerts, a personalized savings & investment calculator, etc.
(Not sure what my point is. :P )
Thanks for this video!
I do agree with you. A bit of programming can make a lot of peoples life easier because you can create what you want when you want.
Yeah, there was a debate on whether basic programming in an easy language should be mandatory in schools. It takes like no time to be able to get some basic scripts that you described running compared to the amount of time dedicated to worthless crap.
Im a BME student who codes a lot in my free time and sometimes it irks me when I ask why someone's doing CS and they say "for the money" and they don't know what backend vs frontend even is...
Biggest lie about programming: that it's about programming. Much navel gazing, such lack of solving problems. Honorable mention: working as a programmer for X length of time will make you a good one.
your last point, such facts. experience working != great programmer.
experience working can == solid programmer, but never great.
As someone that started programming on early 8 bit systems, you make some really valid points. I have taken some college programming courses, and some online courses. The college curriculum was years behind, but I did learn better commenting, cleaner more readable coding, and better testing practices.
I especially agree with the last part. I was looking into what makes a compiler and what makes machine code work and oh boy how the amount of math you need to know and the mathematical maturity you need to have increase exponentially! People think AI are the most complex pieces of software you can find but that is not the case.
yet these "disrupting education" startups, will take on huge cohorts of mostly immigrants and tell them they're gonna all make PHD money without a PHD.
Ah fuck.. I'm a new CS student and I can't do math for shit, I've been trying to learn calculus from youtube in past few days but I literary can't understand anything, am I gonna be fine?
I don't know man, it's a bit too strong to say "ai aren't the most complex pieces of software"
Once again, it depends. We know for a fact that maths is currently not advanced enough to solve some specific problems in AI. It's litteraly so complex that NO ONE in the world has an answer for those problems.
But yeah, people think it's the most complex thing not for that reason. And it's not the only field where human doesn't have every answer.
@@mr.commonsense6645 don’t worry you will be fine. Math is required in higher levels and if you wanna specialize. Writing complex algorithms is not something you will be doing every day.
@@xenio8736 To my understanding AI is based on a gradient descent in a multivariable calculus context. I think that is pretty much all the math you need for it. I think that what is missing is an understanding of what that mathematics means in the context of a neural network simulation. Perhaps I was just scratching the surface of the field.
5:13 @ThePrimeagen
explanation: developers rely so much on third-party softs that at some point it becomes comical for them to pretend to have created anything.
It's the case in any industry, but computer science make it even more obvious.
IM SO HAPPY YOU ACTUALLY DID THIS VIDEO!! THANK YOU!!!
you are welcome
@@ThePrimeagen I'm dripping on coconut oil right now
I once said "I should be able to have this complete by the end of the week"
Then 3 months went by...
Awesome video! In case you wondering again, my knees are fine today. Oh to be old!
Biggest lie: as a beginner, it’s ok to not learn a testing framework for the language your are learning!
yes. this is such a terrible thing.
testing should really be pursued very aggressively. Changes how you code.
Hi Primeagen, had to comment for 8:27. Quite simply, hilarious!
More animal sounds please.
It's rare to have things that are objectivelly "easy". If something is easy to do, then we take it to insane levels of complexity because the basics are easy. It's very easy to kick a ball, but go try to be a soccer player that does pretty much that.
this is a good comparison.
Its easy to kick a ball, its complex to be good at soccer.
Its easy to program an if statement, its complex to create HTTP
@@ThePrimeagen It's all ones and zeros. That's only two numbers. babies can count to one, right? I mean we (humanity) literally turned fire into video games. Everything is simple when you look at a small enough part of it.
1:45 hat tip to stuart smalley.
Honestly for most of programming you dont need college. You do however have to enjoy it and be motivated and create a portfolio of projects that show your skill. the areas where i'd say college is a debatable topic is robotic programming or game engine stuff. basically programming that involves a lot of math. But a lot of programming is just a thinking process that can be learned
The only benefit to gatekeeping is that it keeps out the people who would ruin the thing.
It keeps out the people who maintain it, keeps out the people who would better it, keeps out so many more beneficial people.
It's so nice to see all experts are gathered on one platform. 100% facts
The Prima: " Guess what, stop using Javascript if that's the backend, and go use Go". Best line of this day!!!
yayaya!
I love the rant about having an intrinsic motivation to be a great developer!
Passion. GREAT point. I am self employed and STILL program in my spare time because that’s what I love and do. Always learning.
samesies
the thing about programmer jobs is that yes, to get a really great job, you basically need at least a bachelor's. So when people say " you can't get a job without a degree" they talk about those top 10% of great jobs. People need to manage their expectations. If you don't have a degree, get a shit job and then use the work experience to get a better job until u get a great job. Expecting to enter into a great job without a degree is like thinking that you will win the lottery some day
You absolutely do not need a bachelor's to get a great job.
So um... What would you choose if not JavaScript for backend? I tried Rust but it seems that it's correlated with senior engineers, and I'm still a junior.
Go
Its just so easy.
I think your last bit on education sort of links to the programming is hard/easy dichotomy. I've worked 20+ years in pretty easy web stuff through to pretty hard multi-system, multi-national coordination problems and in the early years of containerization and message queues etc. In some jobs we hired people from bootcamps and even trained people up. In the harder jobs we only hired people with formal education and years of experience... and then trained them up :P Programming can be easy, but it can be really hard and challenging.
exactly. The difficulty isn't in the programming itself but it the problem you are attempting to solve. And some people just don't even know what NP Complete is.
@@ThePrimeagen > And some people just don't even know what NP Complete is.
Fucking monsters.
I'm 1 year from the future. Wow you look so different without the mustache only.
Hey prime! How do you work with terminals in vim to quickly compile the code or smth? Currently I have been using floaterm but I have been noticing some issues with output being cut off, so Im on the lookout for alternatives
i have been using tmux and just swapping to a different terminal.
I'm really new to programming but I'm happy that the community was so encouraging. I was so scared going into it because a lot of it is math and I struggled wage some kinds of math in high school but it's more like... The computer is like me and operates on pure logic but you need to tell it the rules. And that's a really accessible concept. I'm starting on python and when I'm really good at that I'll try out JavaScript and a version of C. I'm happy that there's so much information just out there for free! And people just post their code online for you to work with when you need it. I'm hoping this will be a thing for me
If it's something you know you want, try not to take long breaks from coding. Those breaks have been the biggest mistake of my study "journey". Life would get in the way and I would do other things and not code for an entire year then have to practically restart from the beginning. Restarting takes away all the fun and makes it harder to actually get through the learning.
@@yellaturd I'll remember that! Rn I'm on a trip to Japan and don't have my computer so I can't really continue for now but once I'm back home there's nothing I can think of thatll stop me
Cannot agree enough with Learn JS first... and then abandon it for better stuff on the backend.
hah! Agreed. Its truly the best first lang.
Typescript
“People are going to say mean things about you, that’s what life is about” -ThePrimeagen
Sage advice.
Man, good documentation rocks. Read documentation in your own time. I got good at programming and understanding problems by going through documentation.
Hey Prime, can you please elaborate why JavaScript in backend - NodeJS or deno or any other framework/platform of JavaScript is not a good idea?
i have one performance video out already (Go vs TS) and I about to have another. Very different, different domains, different problems, both showing the same results. JS is not great for back end and costs a lot
@@ThePrimeagen oh my bad. I'm mostly a SysAdmin/DevOps engineer. I thought NodeJS would somehow be better than TS 😅
About creativity vs technical skill... I completely agree with you. The observation of technical skill driving creativity is something I've felt all too much as someone with more creativity than technical skill... What's the point of having a super awesome idea if I can't execute it? Also, how would I know if my idea was even unique if I didn't also possess enough skill and experience?
I find this quite interesting. As you said about when beginner programmers think it is all copy and paste, and that they don’t know the language, it is a harsh reality.
One and a half years ago I was learning react for the first time, with my only knowledge of JS being copy and pasting, and I of course now know it, but oh boy was that not fun.
So yes if you’re new try not to google, in fact I would say maybe try a week or two without an lsp.
programming without an lsp is such a great idea. I should probably do a rant on this :)
It's like cooking. You don't need to know the theory of cooking to make great food. You don't need to memorize anything, either. But the more you know, the finer and more diverse your dishes are
that lion impersonation tho 8:27 lmao
leaned in
I think Python or Javascript are good for beginners to try out programming, but if you are forced to learn it (like college students), I think it's much better to start with the fundamentals like C.
No, it is not. "College students" can mean a whole lot of different things.
If your degree is Computer Science, then ok.
If your degree is Physics, why would you need to learn C, only to end up using very simply Python in 90% of your daily work? In any case, you would learn FORTRAN, because the other 10% will be FORTRAN in many, many fields.
There is absolutely no need for a physicist to know what does dereffing a pointer mean. Zero need.
it's killing me inside that there's a notification for brave rewards at 13:50 that isn't clicked
I think "you don't need a collage education to get a degree" is the biggest lie about programming
You caught me, spreading lies
I've done a lot of collages. Send jobs my way.
What a breath of fresh air you are from all "tech" TH-camrs and influencers
Man I've been learning nodejs for months, i wanted to be a backend developer with node but you said that we should stop using it and now I'm unmotivated 😔
What backed language should I learn, i wanted Java but in not sure
Go is great. You can use node to learn the basics, but graduate to the next level eventually
@@ThePrimeagen But I'm a junior, can a junior get a job as a go developer as easy as You may get it with Java?
@@ThePrimeagen And I'm very curious, Netflix uses node J's and you're working for Netflix, what are you thoughts about it?
A lot of companies are using Node to allow developers to use the same language across the whole stack. It may not be the most performant but that's not always the main concern. I say stick with the thing you started with until you've been working a while. Once you get into it, picking up a new language is no big deal.
I'd say you can't go wrong with either Python or Java. From a small glimpse at top companies they always throw a wide net on language/framework requirements, mostly because they use a little bit of everything depending on the situation. And once you have a few years of experience in your pockets you can branch out to Golang or Rust. But yeah, where I live there's close to no Rust/Go openings especially for junior developers.
For all the hate Java gets, it's a popular language to get a junior backend job with. And don't discredit Node.js as a starter, or even Nest.js which uses TypeScript (but it's less popular).
The amount of people who are actually passionate about their jobs seems to be 20% or less...most people are just passionate about not starving or loosing their home. We choose careers that fit our aspirations and skill-set as best as we can. You should defnitely choose a job you're happy with, but finding one you're passionate about seems to be only for a lucky few...
JS is fine for backend, especially when the none technical people asking for features come up with requirements, timelines, and disjointed implementation scheduling that make churning the code everywhere a daily. With the advent of bunjs I really think TS will be fighting C# and Java.
I think the concern over JS in the backend is the lack of type safety, memory safety, rather than speed. But I may be mistaken
My stance without a degree on the degree part: It's harder. You have to put in a lot of time and effort and you always have to proof, that you're fit for the most stuff. In the end I think I put the same time in learning this stuff as studied people did. I missed some corners but got more in depth in others (e.g. category theory > analysis).
If you have the chance: Do a degree. Even if it's just for the certificate and so you can proof that you have the basics.
Right now it's gotten a lot easier. My job track record is getting better and beginning to be worth more than a degree. But the way was hard. Like REALLY hard.
World would be much better if Prime had million subscribers and Tech Lead 50k.
I just haven't been fired yet. Once i get there, then BOOM, 1m subs
Who you know definitely helps. It doesn't let skip the technical interview, but it can definitely put your resume at the top of the stack and help swing the debrief in your favor.
I think C is the best language for beginners. It gives you a solid foundation on what's actually happening with the CPU and how is memory allocated. Obviously it's not the fastest way to land a job, but building on top of a solid foundation is always better then on a leaky one.
I just don't agree with this anymore. To much of your life will be spent without having to know these things.
BUT i do agree with you fundamentally. If I could have it my way, this would be the way. But I cannot. So I think JS is the next best. Discover what you like, pursue it with passion.
@@ThePrimeagen It seriously depends on what your career path is as well, I think many people equate software engineering with web development. If you are working on a systems level then C is obviously the way to go. As a general statement I would agree that javascript is a good first language for beginners since MOST people seem to move towards web development anyways.
@@spencerwilson-softwaredeve6384
yes agree with you, a lot of people nowadays think software engineering = creating web applications.
I agree with the original comment, C can give you great fundamentals for Computer Science and software engineering as a whole, obviously I’m not talking about mastering C, but learning the fundamentals.
Even if you’re just gonna build web applications I find useful to know the fundamentals if you really want to be a good software engineer
Absolutely the fuck not
3:24 i spent a week on a bug, it was an off-by-one error in a loop iterator
So many freakin inheritance and signal diagrams that week
What a great video to start the day! Love the encouraging and insightful stuff here.
hey, ty!
I can't decide whether to be technolgicaly agnostic or deep dive into one technology at really high level...
(To be specific i do mostly backend in springboot,kotlin but now got to work with python and flask... Should I continue with springboot or be technolgical agnostic and work with flask and python)
I am always of the opinion to deep dive on the tech, not a specific implementation.
What makes a request framework good? How to make it better?
@@ThePrimeagen jazakallah... Thanks
Formal education is required in India, even small variation can ruin your job opportunity, like companies in india prefer engineering graduates than science graduates in bachelors degree of computer science.
yeah. the world does not look like the us and this is a good reminder. some places education is a requirement.
About getting a job without college: I agree that it's easier, but that shouldn't deter if you if you can't afford college or don't have the time for it. I did a bootcamp, it was fine (they're not all scams, you get out of them what you put into them, just do your research first). But without a degree, be prepared to work from the very bottom up, you're not going to land a 120k salary coming from a bootcamp. If you want to get a junior frontend job, or intern on a DBA team, you'll be okay. Want to go into data science without some university stats? Nope. At the same time, if you're from a college that doesn't have a good reputation, that might actually hurt your chances compared to someone honest about being self-educated and willing to work harder to make up for it.
Devil's advocate for learning Rust over Python: Package Management, Documentation, and Error Messages. Also the strict rules in Rust are seen as a barrier but they helped me develop a better understanding of programming earlier on. I can expand on those points if interested.
For context: not a CS major; I used python for 13 years, started learning Rust 6 months ago. I find rust easier. Matter of taste, I guess.
Love the channel, btw. Dvorak ftw
You have to admit that rust as a first language would be _very hard_. I love rust. Its still hard for me .
@@ThePrimeagen Thank you for reading and replying! I hear you, and I know I'm an outlier here. Not saying Rust is easy, but I've honestly found it easier than Python. Not a popular opinion, I know, but that's been my experience.
Already I understand modules and directory structure in Rust better than I ever have for Python.
Same for dependencies. After a recent migration to linux, my main Rust project was up and running in no time, but I still can't get the equivalent Python project and it's dependencies to work. Somehow, I frequently find myself in this place with python: Troubleshooting the setup, not the code. This hasn't been an issue in Rust.
Rust- the actual language- might be more complicated, but when I hit a snag it's been a short, definitive path to the solution. I rarely make it past my top bookmarks: The Rust Book, Rust by Example or Easy Rust. Plus the API + Book combo for most crates is wonderful. I'd take a complex language with amazing docs and examples than an "easy" language that, for me, has been a struggle to parse the signal from the noise: lots of rambling blogs; lots of ads and filler; API docs are endless walls of text on ((shutters)) a white background.
For those reasons Rust has taken me to a deeper depth of programming in a shorter amount of time. Not to say I'd recommend it to all beginners, but there are weirdos like me that found python challenging and rust less challenging.
Far less experience than you & only partially into my Rust journey, but I totally agree on Rust helping to give a better perspective on a number of aspects. It forces you to think about what you are doing, whilst giving you the understanding of why, which is so valuable.
Everyone has an opinion when it comes to good & bad languages (in their view), which only makes them look foolish. Rust is widely accepted as being loved, for good reason- but you still find the devs that consider C to be a biblical gift & Rust is therefore pointless.. irritating.
That’s the sad part, the diss on various languages really muddies the waters for beginners to pick a starting point & despite what some will say, it can shape the course of your future. Starting with C is quite likely going to shape a different path to learning Swift or Kotlin or JS. Not always, of course.
I wish Rust was a prominent option for beginners when I started, as I am absolutely certain I would be a better dev as a result now, albeit with some differences in the work I do now.
The TLDR; quality learning, is the best learning. Knowing why, often beats knowing how.
Appreciate your comment, let’s spread the good word about Rust 🤘🏻
6:08 "Is your motivation going to wane to get better? Yes it is. Will I miss pronounce 'continuously'? Yes I will. Will you not be as good as the person who is passionate? Yes you won't"
Yeah, anyone acting like you NEED a CS degree to get into tech is probably just bitter because they've been unsuccessful (for whatever reason)
such facts. I have never actually met a person who has done this, just trolls on the internet which I am pretty sure are just russian / chinese bots at this point.
In terms of college, my only comment is I personally wouldn't go to a private college unless I was:
1. Rich
2. Going under a full ride scholarship with books, room and board included (which requires hard work and good grades in high school)
State colleges are fine and they're usually a lot cheaper. Stony Brook is a great school for computer science if you're in the NY area and it's cheaper than Columbia, NYU, RIT and Adelphi while being just as well respected. I don't agree with people who say college isn't worth it, but I do believe in shopping around and seeing that you're getting the most for your money. Just like a job interview, you're interviewing your potential college too. Great questions and statistics to look up are:
1. What percentage of graduates are working in their field?
2. How many graduates are working at companies that you would want to work for? LinkedIn is great for this and maybe a fun project would be to scrape the data on alumni employment at the best reviewed tech companies based on the top ten state schools in your state.
3. How relevant is the curriculum to what you want to do? Are you interested in game development? Are you more into AI and computer vision? Are you more of a robotics person in terms of software? It's very important to nail down a niche and pick the best college to achieve your goals that is within your budget