It's easy to get accepted into Harvard if your parents are super wealthy.. or you have a good memory.. but neither of those things make for a good developer
@@tyrabjurman3584No. It's definitely more than just rich parents. I had very poor parents and made it to a t5 on full financial aid. Most people at my uni are extremely rich AND very talented AND hardworking (for the most part). It's alot of factors but I would agree that a large part is your life circumstances and luck.
Even the car analogy - you think engineers at BMW or whatever when they start making a new car go design an engine from scratch? Nah. It's all bolting together shit that's already been designed too.
My experience from doing a CS degree decades ago, core subjects aside, even if you know more than the lecturers about some things, it fills in a lot of holes in your knowledge you don’t know about. Being self taught is great but you don’t know what you don’t know.
Yeah comp sci and eng degrees are what people rail on when they don’t know what’s taught in those degrees. You don’t learn how to code in a degree, you learn fundamental building blocks and how to think about how to engineer projects. How to find efficient ways to solve problems, how to simulate and model, how to create project scope, how to identify key problems and hinge points in which your project could fail. Learning python for instance is a side effect or a subset of how to solve a problem, ie a means to an end. You can learn that shit on your own anyway. Hard to learn how to model a digital low pass filter so you can tackle it with code much easier; though.
I've worked with one (1) engineer who was self taught and good. Rest of the self taught people I've ran into in industry were interviewees who couldn't tell their head from their asses. I eventually stopped accepting resumes if they didn't have SOMETHING on there in terms of education outside of high school. At big companies these are generally filtered out.
Reason why i didn't get into cs is because most of cs resources are on internet. Microelectronics is gate keeped as hard as it could so I choose that, I can always go and learn ASTs and stuff, but I can't learn how to grow GaN ingot.
it's a banger of a line...but it's also rookie logic. people think that if you have a large app, and you break it into smaller parts, that you end up with the same size app but a million more pieces. maybe if all your code is procedural.
Clean Code was helpful, even instrumental, in my early years of SWE. I propose a rule to maintain society's sanity: *if you haven't read the book, be skeptical of hot-takes about the book* I have read (and re-read) Clean Code, so to follow my own rule, I'll just speak to that one. It is extremely simplistic to reduce the entire concept to a simple rule of "4 to 6 lines". I just flipped through the section on functions, and I couldn't actually find the "4-6 lines" rule anywhere. He does say they should be small as possible, but the main focus is on things like: - functions should do one thing - one level of abstraction per function - use descriptive names - limit the number of arguments as much as possible - limit unintuitive side effects These concepts are generally agreed on, with some nuance at the edges. It is sad how often "the baby is thrown out with the bath water" due to this telephone-game of influencers riffing off of lame takes that are super reduced versions of good ideas - to the point of not resembling the original.
Best response to Prime's lame rants about the clean code. I'd rather read a call to a function called "checkCourseAvailability" than a complex-looking AND statement inside a "enrollStudentInCourse". Since we're reading code more than we are writing, avoiding these seemingly small issues has a huge impact when developers are strangled with deadlines which are neither reasonable nor proposed by the development team.
I think the main lesson is that any coding concept can be taken to the extreme. Dont blindly follow coding concepts. Only implement the rules if they make things better.
I learned programming like a slow burn, and being able to combine knowledge of so many different technology concepts now is extremely valuable. Knowing Linux, networking, virtualization, security, scripting, THEN programming feels so much better.
The problem is that there are too many people who prefer a safe route, or simply do not understand. I am working on a space combat/exploration game, and I have a certain vision for it. A LOT of parts have to harmonize for it to work. One friend suggested I scale it down to encompass maybe 10-30 solar systems, which I then populate well with content. This is not my vision. My vision is to have near infinite galaxies with billions of solar systems. To bring out the best of procedural generation I can, to avoid barren wastelands of boringness. I already know the problems, and they are well fixable. But players cannot simply move anywhere they want - FTL movement has its limits, which is resources and progression. To reach another galaxy, progression has to be very advanced - meaning you better have a capital ship. And once it is done, players could create galaxy crossing warp-gates. Anyway, the point is that I cannot let my vision be compromised by people who either do not understand it or dislike it. I have no choice but to be the decision maker. Any form of Democracy would bring death to my vision. As of now, it has a chance to achieve greatness or total failure... and the safe way leading to mediocrity is likely closer to failure than success.
@@brianviktor8212 I agree to a certain extent with what you're saying, but the biggest problem with it is that you're going to lead yourself into burnout. The thing about compromise is that it gives you the ability to dictate and give parts of your project over to someone else while you can focus on the more important aspects. And I do think that your friend making a suggestion about going with 10 to 30 solar systems is a much better approach than trying to encompass such a broad stroke on something that you haven't even realized yet. What I think I mean to say is that if you've created an app and the app has zero users and you're trying to build the app to be scalable while still having zero users, what use is it to have an app that is scalable with still zero users?
@@ultimaxkom8728 The idea is to create a near-infinite world. Think of Minecraft - even though the world is big, almost everybody resides within the x,y,z coordinates below 2000. What is important is that you can decide to move anywhere, and there will be something. Sometimes it will be something excelling, which may cause players/guilds (and NPCs) to fight for it. The additional galaxies serve as additional end-game content. It also extends this concept beyond the first galaxy. All except the main one will be special - more dangerous enemies, better/different resources, visual/structural differences. The algorithm will create something interesting. I already have the algorithms to create the main galaxy, so why not just reuse them?
I recently had an idea to have a coding interview structured like so: 1) Your company has a little dummy project in a currently used stack (maybe multiple projects so the interviewer can choose which one to use in the interview) 2) In each of a dummy projects you have some amount of small tickets, like ones you evaluate around 1 or 2 in the sprint planning 3) When the interview starts, the interviewer gives the person the project, lets him onboard for some amount of time (e.g 15 minutes) and then gives the person one of the tasks. 4) The goal of the interview is to not watch how well a given person studied his binary tree conversion, or how well he knows the nitty-gritty of given technologies, but how he actually WORKS and SOLVES the given task, which is what a technical interview should be doing in a first place. If anybody encountered a similar interview structure or (for some miracle) has it in their own company, please let me know, it would be interesting get some feedback on the idea
It’s basically how I got hired. We do a project that is take home, build a small web app that does like 2-3 things using whatever tooling you want. Then we did a code review. It was all very realistic tasks and self paced, no leetcode at all. Just questions about knowledge related to the stack we would be using, general software dev knowledge questions. Still here almost 5 years later.
Most universities in Norway have a mandatory class called Examen Philosophicum where you get an introduction to philosophy - as well as one called Examen Facultatum that introduces you to the scholarly tradition of your faculty, they're half a semester each. They sound like a good alternative to what Prime had to take :p
Being a car guy who's built cars and a software dev, the term we use for glued together is "Bolt Ons". Anyone can bolt things together but not understanding the impact of what you are bolting nets you poor results.
Reminds me of network certs enabling you to multiply your workforce by teaching a few basic guidelines based on the taught science. So field workers mostly know, cut this, untwist that, crimp like this, with no clear figure for how things are done this way. Then you plug the power meter, and graphs alone draw the figure, strangled cables, pairs too untwisted, you get the idea. Very few care to know why that actually matters (and the few who do, time is short) and think you're being a pedantic diva about your cables and got nothing better to do to inspect zip ties.
Context is everything. Hard/fast rules are usually based in some truth but fail to live up to hype because each project and each feature has its own context which will steer experienced engineers somewhere in between the "rule" and some opposite of that rule. However, rules are useful to learn when starting out. You can better "break" the rules once you've had some experience following them.
I always thought it was contradictory that he rants against basic ideas like trunk-based development, CI / CD, clean code, and pair programming for a guy who preaches that the beginning struggle is an important phase when learning a new topic (which he himself admits that the struggle might be more commonly avoided when you rely on LLMs). I suppose one might overlook this contradiction if you only take his videos with a grain of salt and a pound of entertainment.
this. it is like traffic laws. as a beginner, you have to learn and obey all. as you gain experience, you make adjustments, learn which ones you can take a bit more flexible or ignore in certain situations
I found that clean code helped me work with larger code bases such as those found in video games. It greatly reduced the time required to find which part of the code to look at to fix a bug, and managing the entire project. As a solo game developer I couldn't possibly manage the entire game by myself without it.
In the UK university is basically _just_ the subject you applied for. I was shocked when I heard American Universities do tons of side subjects that are not related to the main degree. Also while it's not needed to have a CS degree I can nearly _always_ tell when someone does and they're usually better / more well rounded.
Same in Germany. I found some subjects even here a bit off from what I want to learn and did not understand right away what he wanted to tell us. At first I thought he was talking about some kind of pre university degree.
I see a lot of blames around clean code... from the people who never read it. They possibly heard some concepts like "function should do one thing" or "function should be less then x lines of code" and take it to the absolute without any context which book provides.
The agile manifesto was created at a meeting of "lightweight method leaders". One of these so called "light" methods was extreme programming. I feel like a lot of the current agile process schemes like SAFe just cannot be characterized as "lightweight" just by the amount of text required to describe it.
one of the regrets by the people who cocreated Agile Manifesto is that they didn't trademark the term. At a result, everyone is able to abuse the term to scam people
What is Scrum is kind of a red herring because it is simultaneously a Schrodinger's Paradox of agile it on the surface may sound agile until you go to implement it and then observe it and then when you observe it you realize how it is it both is and is not agile at the same time
13:10 - One alternative to leet code could be showing an actual code commit and asking the dev to do a code review on it. Include intentional but subtle mistakes to see what the candidate picks up on, and have him back up his comments by explaining why he'd leave that comment or why he'd let something go. Ask why he missed something, if he did. To me, having them do a PR live gives way more insight into a developer's mind than having them solve a leetcode problem which rarely ever reflects a real-world scenario. There are a ton of devs who could solve leetcode problems all day but couldn't do simple things like the proverbial "center a div."
SCRUM has never been agile, is just recursive waterfall. Agile is about prioritizing people over process, and SCRUM is about prioritizing process over people. You should read the manifest and check how many of the statements do fit SCRUM.
Valuable comment, thanks. I am not a fan of either, and I will likely never utter the word "agile" when advocating for anything. I've never liked it, but maybe it had become tainted by the carnival barkers from the very beginning decades ago. But "prioritizing people over process" is a phrase I will keep in my quiver. It's great as an ethic, all on it's own.
Scrum is also just a process framework, that should be customized for the team, but it's been turned into law, probably because Scrum Master go through training nowadays, but don't actually learn to be flexible, just to "follow the process"; very "middle-managemently"
I don't think any of you understand what Scrum actually is. Scrum is a negotiation we lost before we started. A manifesto is nice and all but you can't write software through a manifesto. You need a process, and developers created one, and it involved stakeholders who were not developers, and the stakeholders immediately carved up their piece of the pie and then some, and we the devs were idiotic and took every single compromise. After being cucked by every other discipline we go back and blame the only bit of organising we as a field have actually done in this domain.
Listening to RUclips programmingfluencers is about as helpful towards becoming a programmer as listening to RUclips fitnessfluencers is about becoming fitter.
@@sadiqshaikh8715 i just felt like every day some new fittnessfluenser says a new method of training, eating, sleeping. Is the fastest and best way to get fit only to turn on it when the trend dies. Same seems to go for programming in my opinion.
My software engineering degree made me write a C compiler, and that was one of the best projects I ever did there. I don't know if it's common for other students in other degrees.
@@pelayovalero1312i think compiler courses should be required in CS. I'm in my senior year it it's changing me.. this late. i wish i dove in earlier but honestly idk if i could do it without the structure and guidance of my TA and professor.
@@pelayovalero1312 I'm so jealous when I read people learned to do shit like this. I don't even know what was the point of my course besides learning about some obscure outdated tech that won't help me irl at all. was this a bachelors btw?
@@cit0110I didn't go to zee college, but I was under the impression the better programs made people pick implementing a bare metal OS or building a compiler
This is really not true. Most software engineers are paid so that they could actually save regularly for layoffs, get decent severance packages for being laid off, and have a skill where they can be confident that they'll eventually get a high-paying job when they find another job. Most people who get laid off outside of our industry can't say the same.
@@vulpixelful If you're getting laid off a lot, IDK what to say. It ISN'T that common. The fact that the video creator and this guy are saying it's happening all the time is a really interesting claim. Most engineers I know have been laid off MAYBE once....? I've never been laid off. And most others I know haven't ever been. It isn't common at all. But yes, you should be able to save, it is DEFINITELY not minimum wage income, I have nice cars & a solid amount of money & equity, people saying they get laid off all the time is absolutely nuts and I think it speaks more to the types of jobs people are taking than anything else.
@@MrSlowestD16 Who says I get laid off a lot? All I said was an engineer's salary allows them to save _on a regular basis_ (monthly, biweekly, whatever) so they would be more prepared for a layoff
@@vulpixelful I meant "you" in a general context. I agree with what you're saying, I'm just adding onto that that the creator AND prime AND the OP all agreed with the notion of getting laid off a lot, and in my experience they're pretty rare, so if one finds themselves getting laid off a lot IMO they should look inward, not at the industry.
Agile as it was defined originally by the people who signed the manifesto is 100% great, the gigantic problem is that managers co-opted the term to mean everything pointy haired bosses were doing in waterfall.
This sentiment comes from the american educational system. People go hundrets of thousands in debt to get a confirmation of skill, thats unreliable at best. I don't think many people think getting university education and sound fundamentals at university is something bad at all. Haven't heard this sentiment here in germany, because it's free and actually about education and not about paying off a 'diploma and getting to know rich folk' fee.
Yes you're right. But american education is very flawed. I live in the Netherlands and with our bachelors you immediately go into the subject matter of your major
What they actually meant is some College degree from certain institutions is a scam. My College program actually taught us a lot on business analyst, requirements, market research and project management, it's actually more like a business degree with some programming sprinkled on.
We've had the debate about take-home tests vs whiteboards and if the take-home is designed to be done within 2 hours or less, how is that meaningfully different than asking someone to take an entire day off from work to do a whiteboard in front of their faces? A 2 hour take-home to then open yourself up for a more meaningful collaborative conversation about how to iterate on it from there I think is a perfect way to introduce a candidate to a team without adding the pressure of someone watching you reason about a problem in real time.
For leetcode you literally have to prepare for months , no matter how busy you are they don't care if your college is over and you don't have bunch of free time with you ... While take home you can give literally 10 min each and get done with it
Companies out there will ask people with families and full-time job to provide a portfolio links and yet we are still talking about whether or not spending a few hours on a task is too much or not.
And that's the way it should be, takeaway assignments trade psychological onsite pressure for offline complexity, you just cannot give an offline leetcode-like problem
I can't decipher your run-ons, so not really sure what you're saying, but you can easily cheat on 2-hour take-home challenges by not having a life and spending 20 hours on solving one.
My favourite interview method: I tell the candidate "Bring a personal project that you've made yourself and that you're proud of. It doesn't matter what it is, it doesn't matter what language or what technologies you used. Bring something that you've made and that you're proud of, and we'll discuss your code." I don't care if they can or can't invert a binary tree on a whiteboard. Show me your code! It tells me far more about the candidate than any brain teaser question ever could (and why I insist on being a part of the interviewing process; I have yet to see HR hiring a good candidate on their own. They always hire the person with the flashiest resume, which is always a terrible candidate.) What if the candidate brings a project that isn't their own? Then they'll have a difficult time answering high-level questions about planning, workflows, problems, design decisions and further improvements. If I ask "Tell me about a problem you had when making this, and how you solved it", and they reply "I didn't have any problems", then that's a red flag.
"I have yet to see HR hiring a good candidate on their own." - I have yet to see HR hiring ANYBODY on their own. What are you talking about? I've never heard of that - ever - hiring managers are always involved in the process, wtf.... There's tons of problems with bringing your own project. Best way to interview people is to ask them questions about what they'll be working on. Present them with real problems that you or a co-worker have run into, and discuss it with them, have them write some code to solve it, or do part of it, etc. Whether they can invert a binary tree is useless, true, but discussing a project they've worked on is only appropriate for a manager interview, it's not appropriate for proper technical interviews.
My cousin wanted to skip going to state college, instead starting his own business, and he tried that "Zuckerburg dropped out of Harvard" bit on his mom. She told him, fine, you can forget college and start your business as soon as you've also dropped out of Harvard. I laughed so hard.
20:50 What I love about Neovim is that personal setup and plugin development is literally the same thing. You can decouple your config and make it a plugin and in reverse. It's especially powerful when you can peek how plugins did the thing you try to configure.
Those methodologies that encouraged toxic open plan environments have a lot to answer for. In the old days we seldom had our own offices, but we at least had a semi-private area in which we each worked. Now there are no barriers and you sit so close together that you're almost on each other's laps.
12:40 Interview alternative to leetcode is: few language knowledge questions (e.g. Java collections hierarchy) + system design (e.g. go through your thoughts on designing delivery app ) + code reviewing (give some project's PR and see what interviewee focuses on).
I agree, even take-home projects are better than leetcode. Why? It usually takes 6 months of practice to get good enough to be able to get a job. This means that you have to spend at least 1 hour each day for 6 months vs doing a 10h project. It is much better to ask relevant questions about programming languages/technologies and reviewing a PR is a good way to filter out coding monkeys who memorize leetcode problems.
I feel like we are being scammed by Prime here. "I have mixed feelings about leet code" => No, for the longest time you were fully FOR this "secret handshake that will get you employed".
7:43 I completely agree!! At my university, I had to take many writing classes where I didn’t learn anything about computer science yet we didn’t have a web development course. They require us to take classes unrelated to computer science and math, yet they force us to learn web development on our own.
Agree 100% with you about DSA, kids never understand that 'cause they don't know how valuable it is but one day or another they will be in need to learn it if they want to grow and make the next step
I had many interviews with candidates over the phone or video chat where it's obvious they browsing Google, SO or using AI to answer the questions. But my favorite interview, is one candidate who actually had the confidence, or maybe ignorance, to tell me "hold on, let me google that real quick." That was a short interview but I'll never forget it.
Tbh I feel people just think its cool to dunk on the books on Clean Architectures and SOLID(I read through only these two books). If you use the patterns to solve the problems when you need the benefits of it, it'll make more sense than following it word for word for word all the time every time and then complain that you have to type more or whatever. Yeah functions being only 4 lines is a dumb take lol, buttt there's still some good advice in them.
Small functions aren't that bad as well IF the functions are at the same abstraction level such that you don't have to switch to the individual function to understand one function
The industry overhyped both books and way too many people were parroting them without deeper understanding or asking themselves if using them is the right thing to do, so now we are one the opposing end of the pendulum swing.
I don’t know why people focus on that the lines of code guideline the more important advice was functions should do one thing. It’s like a single sentence some disagree with and then they dismiss the whole book wtf. To be honest I find this anti-clean code and SOLID trend bizarre, why the hell would you throw away the best practise lessons learned with basically no justification.
Frontend? I remember s and table layouts. And we couldn't convince customers that "the web is not made to look they way you want, the tools don't exist, we have to cobble this together with sticks and ducttape". Or use flash...
Trade schools for programming exist... We hire from them a lot. It's usually a technical college, but it doesn't go low level. It's surface level, but it's good
Maybe I misunderstood Prime, but I don't think that LoB means that you put all code into single few-hundred lines long method like Prime seems to understand it. You still divide code into smaller methods for readability but put them in the same file so that everything needed is local to the core method. Extracting and giving a name to a meaningful portion of a long method eases reading and understanding a lot.
I have a phrase for the opposite of "locality of behavior". When you have to jump back and forth to try and understand what's going on, it's because "everything is defined somewhere else". The best reason to break some statements into their own function is because the same functionality is needed from multiple call sites. If you're just doing it for stylistic purposes, and not to avoid repeating yourself, yer probably doing it wrong. Use early returns / guard conditions to avoid deep nesting and then just let it be a couple hundred lines if that's what's needed.
100% this. That does mean some methods end up being a handful of lines long but the benefit is that the larger function is easy to read and understand. It's just pushing things down levels of abstraction so it's easier to reason about what is happening at that point in the code. It's analogous to saying "I drove to work", rather than describing in excruciating detail your whole journey to work. Sure you can get carried away with it, but it's just a case of using your better judgement and being pragmatic rather than dogmatic.
@@-Jason-L Use long, descriptive function names or doc-comments or commit notes for intent. If the dev couldn't communicate via that or variable names or test logic then functions for their own sake isn't going to help either. I usually care a lot more about what the code actually does than what the dev was hoping it would do, though. If the non-technical stake-holders (the ones who don't read code) can't tell you what the software is supposed to do, that's a much bigger problem than any code style issues.
@steamer2k319 that doesn't explain the actual logic. You have to reverse engineer the "algorithm" from the code - after 30 years in the profession, that is what i consider bad code.
@@andyk2181 Yeah. I've learned, especially when debugging/troubleshooting, not to trust a function to do what it says in the tin. However, if the definition is inlined, a lot of the time you can see the bug just by a quick reading of the code in e.g., the GitLab web UI without even having to fetch a local clone.
I've actually talked to Uncle Bob at a Ruby conference years ago. I believe he got the 4-6 line number from working in Ruby on Rails. Usually those functions are very short and Ruby devs would get bent out of shape if you wrote longer controller functions.
😅 Good to know I am not the only one calling for locality of behavior... One of the first open source project that I have read, lit. has 3 functions per file each always calling functions on different file all across +60 files and it is just an endless 🍝.
In Australia we don't do the "year of general education" that US universities do - though there is plenty of space for that in your electives generally, so you have some freedom to learn interesting things that aren't 100% relevant to your major or minor. That said, I think the international study market is particularly interesting, because post-graduate degrees (like masters) are very popular, largely because they're a little more concise, but also because they open up international job opportunities too. I do agree with the sentiment that trade/tech schools might be a good fit for IT (and I think that education should still come with the same level of respect, employability and count towards migration for foreign workers). But that's something for society as a whole to sort out eventually.
I was looking at a local junior college with my son, they had all kinds of great tech centric majors. The networking degree has Net+ and CCNA built into the program. The certs are worth more than the Associates degree that they come with! This is a good sweet spot, I think. Learn a vital skill without completing sacrificing the educational value of a core compliant college.
The problem with unqualified (or the requirement to achieve) "locality of behavior" is "reference [un]transparency". That is the unsolicited state changes or "the pulling of the rung from underneath".
I always understood CC as more of a guideline than a strict rule. And it's the cause for its controversy. It is generally solid advice but put to the extreme and making it a strict rule just hinders progress. And when organization is everything, there is a huge overhead on being creative and productive. I saw 1000 line 4 deep nested switch cases in production code from a big company, and we can agree that this is just garbage. It's all about finding the balance, and never about just following one advice. Read, learn and improve, but don't get stuck on advice. Best
Regarding interviewing and hiring: people used to work for just one company for their life. If companies didn't force people to keep hopping for career advancement or salary, ANY interviewing process would be fine and acceptable, because it's a once or twice thing in your life.
Prime: The middle ground is where the worst ideas are from Also Prime: we should have something in the middle of bootcamps and degrees. Those unspecialised years at the start of US college do seem like a waste of time though. Most places don't do that.
The 4-6 lines of code per function could be a remnant of old NASA coding guidelines for space-/aircrafts. They suggested that a function should be printable on a A4 sheet of paper with some specific fontsize.
9:03 As a non-American, it's interesting to see what you do at college. In Germany we get e.g. our CS degrees at university or at Fachhochschulen (some translators say you can translate that as "technical college"). But we only do stuff for our degree there except if we voluntarily decide to do something else additionally. What Prime is talking about here is something we would do at the schools before that, e.g. the Gymnasium (one the schools you can go to after elementary school until 12th or 13th grade (we don't reset the counter)). 13:40 I like apprenticeships, also for programmer (notice, not Computer Scientists). But it's not a 6 month thing or something along these lines, it's a standardized multi-year apprenticeship (in case of programmers it's 3 years; yes, the same system exists for all kinds of jobs) where companies and job schools work together (with you working for some time at a company and studying for some time at school) which you do when you are fresh out of school (normally). You also get a certificate afterwards (so you can apply at different companies) and normally also get hired by the company you made your apprenticeship at. And you don't do some specific technology in that time, but more generalized.
It's just a meme at this point. I dont think anyone claims he made that kind of a conclusion besides people that are just trying to purposefully bait people.
@@ArturdeSousaRocha book has like hundreds of little advice that are pretty good. And yet people somehow only bother to talk about this one point about number of lines in function that so obviously depends so much on language and project that is being built and obviously if you have function that case a switch case in it with 100 switch clauses then obviously function can't be 4 lines long. Much better advice that can be found in the same book about functions is that functions should maintain single level of abstraction and that function's name should describe what it does. If you can write function that is 200 lines long and it maintains single level of abstraction and if you gave it name that perfectly summarize what it does then you are still following most of advice of the book.
Me seeing the video constantly in RUclips every single day: I'll just watch it later "Add to Watch Later" The Prime made a reaction video: Stops everything to watch the video. It's the Prime Time!!!!
There's a trade school called 42 you might like to look into. It starts of with a 1 month boot camp, but the boot camp is just a selection process before you can truly join the school. The core curriculum lasts from 1 to 2 years and you can then stay longer to learn about more specific subjects
I have a friend who is in it now, and another friend who has gone in to help mentor the people there. I can see the progression in my friend and would say it's much more fast paced than a university CS degree. I'm more worried about them trying to find a job after especially I live in the city where 42 runs and know the job market pretty well now, unless they have connections to some small to med level companies it will still be hard to land your first gig without a classical university degree.
I did their "pool" or selection process. Wouldn't recommend it for anybody. Their teaching style is based on fear and leaving the students with vague and imprecise requirements, and then rejecting your assignments because you used stuff that's "not allowed". Then you ask them what's allowed, and they say that you should figure it out yourself. It was not an emotionally healthy experience. I still fail to see how throwing a bunch of beginners with no orientation into coding, give them no theoretical or partial guidance and then not let them use printf is some how a good teaching methods
I'm sorry it felt that way to you. The "pool" is complicated and the students from the years before are not allowed to help you during it as it would be unfair if you were helped and other candidates were not. As for using disallowed functions like printf, I think the goal is to make most students start off at a similar point since people that try to prepare for the "pool" will have learned about printf and not about syscalls like write. (The goal being to not give too much of an edge to people that have the time to prepare, for example if you have children you would not be able to prepare as much) It's also about learning about abstraction level since you start your education using C with only syscalls and then proceed to use higher level functions once you have a better understanding of the basics. I have do disagree with you when you say it is not indicated what functions you are allowed to use as they are clearly indicated in each exercises. The goal of throwing the students at problems without any ressources apart from a few videos is to see how good they are at finding information with nothing more than the internet and they fellow students. This is a skill that is necessary if you ever want to be able to create a project without the help of a tutorial or a mentor (English is not my first language, I hope this wasn't too hard to read)
@johnsitarski4158 To my knowledge all 42 schools are free for the students and sponsored by companies that invest money in the school to make students want to work for them, the sponsors may be a good start for your friend to look for a job if one of them works on projects that interest them
Uncle Bob's work has got me to think, but by the time he published it I had a couple of decades of learning the hard way. Pragmatics usually rules and hard rules drool.
About the college thing, I think one of the biggest problems is finding good teachers. Usually CS teachers are good teachers, not good software engineers, so they don't know how the industry actually work now.
6:25 Imagine being part of a team where everyone is bilingual in Spansh and English and its not expected to change (say, you work in a team of translators). You're trying to figure out what language you should for your internal documention. You can choose Spanish or you can choose English, both will ~work~, however, a compromise where you alternate between Spanish and English in the same document is a horrible solution.
On the point about small functions: The 4-6 lines I think is arbitrary but it should be something like the function name describes what it does without seeing the entire implementation, and if the function is small enough then it's likely that the function name doesn't lie. So instead of reading 6 lines of code to know what is done you just read the function name and understand what it does. It's an aesthetic/readability choice more than anything. I don't think it conflicts with the LoB principle as I understand it from the HTMX explanation. You are still calling the functions locally. There isn't any invisible system assigning behavior. You explicitly call the behavior. It's visible locally, even if the full implementation isn't. Compare that to the HTMX example of jQuery where you have a section of HTML with no visible calls to anything, and a locally invisible system assigning behavior to it. You can't know that "button" calls "click" from just looking at the button declaration. The "better" from HTMX is a function call located on the button. In fact I think the HTMX explanation in their point "Surfacing Behaviour vs. Inlining Implementation" points to this. I might misunderstand it though. It's got Latin in there and I can barely understand English.
I’m technically a “scrum master” but the key is to trim all of the corporate bullshit part of the methodology, fight for your teams development time & meet on blockers and design. Or you may as well make the mantra of Agile (always changing and never deliver)
My dad was one of the best mechanics out there. Top tier mechanic at a top tier rolls Royce/jag shop in Beverly Hills. Dude has built engines. It was also taught how to do it in the 80’s at his trade school.
actually the "few lines per function" is epic if used right: 1. its easy to cover properly with tests 2. you can reuse that method 3. when reading small function that call small functions (with good names) you can understand the flow with ease instead of following whats going on.
Blows my mind how software engineers will soon discover how apprenticeship was always the solution, and they were merely blinded by their own arrogance to admit it.
Hard disagree here. I’ve worked with engineers in high school who were more productive after one week than engineers with multiple years of experience. The difference is their ability to break problems down and that’s a something I want to figure out before I hire and invest time in them.
The issue with "Probably shit company and you probably didn't want to work there anywhere" is that the alternative is flipping burgers for minimum wage or breaking a back for $17 in a warehouse. I'd rather work at that shit company for a year just to get some experience under my belt and I know there are many of us where this is the reality. We don't have parents to fall back on, rent and insurance is due; we need a job just to survive and look for another job.
The reverse normal distribution feels so true. It reminds me how I feel every time a scrum master (or a facilitator) gets in a heated discussion trying to find a compromise and move on: that idea is BS.
I started programming in high school, been working in the industry 5 years I’m over 30. It’s ridiculous but I lost my passion but also ability to actually program. Seems day to day work has degraded my skills. I’m now rediscovering the joy, by starting to program without expectation. Take a problem / goal Break it down as much as you can Google things you cannot figure out on the top of your head. Build, build and build some more. Yes I know design patterns, database management, scrum, tdd, devops, etc, yet I freaken forgot how to just program
_"Agile is communism."_ True on so many levels. Even to the point that back in 2013, I was in a Scrum training and people brought up the concept of identical paychecks for everyone. I was baffled: "So someone with 20 years of experience should get the same as a college fresher?" - "Yes, _because in the Complex you don't know who contributed how much, and a team succeeds as a whole."_ But some are more equal: _"The Scrum Master should always get more salary than the highest-paid developer."_ If your BS detectors aren't tingling by now, you may need to see a psychiatrist. There's so much nonsense going on in the Agile space, and it's really hard for an outsider to see whether you're getting taken for a ride. Disclaimer: I spent over 10 years as an Agile Coach/Consultant.
5:40: it's a common issue. The trap of thinking that small teams must communicate in a standardized way. So you end up with teams spending time doing stuff that has nothing to do with their core function. Reporting and documenting instead of solving problems. We see this in healthcare in the form of "structured medical records" which eat anywhere from 30 to 50 % of a doctor's daily working time.
Yeah the performance thing is very important but only in specific applications. I had to build a routing engine for a company working with the emergency services. Performance there matters..."sorry I'm just waiting for the system to figure out which fire engine can actually route to the incident quickest" "But my house is on fire :( "
@ 1:50, @ThePrimeTime is incorrect about the premise that Uncle Bob has a hard suggestion of 4-6 lines. That is not what the book says, that is not Uncle Bobs suggestion. Without correct premises, it's a straw man argument. There are a lot of valid & insightful criticisms of clean code, but those start with a correct premise. The book says (page 34): "The first rule of functions is that they should be small. The second rule of functions is that they should be smaller than that." A bit further on the same page, as an *example*, the book states: "Every function in this program was just two, or three, or four lines long. Each was transparently obvious. Each told a story. And each led you to the next in a compelling order. That’s how short your functions should be!" The advice on function length is that functions should be as small as possible in order that they are transparently obvious and tell a single cohesive story (and to get there, they in effect need to be short). That is _not_ a flat statement that all functions should be 4-6 lines long. There is both a distinction and difference there. Personally, I think there are a lot of caveats to that advice and it's a deeper story. I think there are elements of that sentiment that are good. More is needed though for it to really be good advice.
Intentionally hard apps do exist. Well, one does. Oracle query designer for finance. It litterally got sent back to dev, due to "design is overly accessible, to the point we belive it will reduce contracting oppertunities". 6 of the team of nine walked before the end of the day
9:55 My Software Engineering degree made us take a Compilers class and make a compiler OS class to make an OS Data Structures and algorithms class to implement these and then test them against each other much more hands on it was fun
Where I live (east coast Canada) community colleges are a bit different than the states and are considered trade schools. I'm just finishing my first year in programming and it's a two year course. I don't know anything about ABET accreditation, but it is a well-recognized college with locations all over the province. We cover pretty much everything you listed; Git has been required for handing in projects (started the second semester), we've learned both Windows and Linux, we've briefly delved into cloud computing, etc etc.. It's nice to get actual tangible skills. Edited to add: In order to actually graduate from the 2 year program you have to have a 5-week work term as well. Forcing you to go out and make connections in the industry and getting some minor industry experience.
Man I have recently know you. But you have already inspired me as a developer and as a person to be better just by your takes and opinions on this video. Definitively going to check your other mentioned opinions referenced in this video.
10:00 Norway actually just recently started offering a trade school course to become a "IT-developer" as a split path to the existing IT trade. Same structure as becoming an electrician! The first class is graduating this year, so its really exciting to see if it will start showing up in job listings as a qualification soon.
Languages that don't indicate types are the worst when everything is split into many little functions. You have no idea what the function being called returns until you dig into its code, and the code it calls, and so on through 50 layers of function calls.
Now that Prime quit his job to focus on making videos, I'll have to quit my job to focus on watching Prime
😂 Greatest comment of the year
based
Prime is the goat of Internet
did he really quit his job?
Makes sense
A lot of great tech entrepreneurs dropped out of Harvard, MIT, Stanford, etc. However, they also got accepted into Hardvard, MIT, Stanford, etc.
Getting accepted is just a matter of being born to the correct parents.
@@tyrabjurman3584At Harvard, yes, MIT, no
@@tyrabjurman3584 oy vey you posted an antisemitic comment!
It's easy to get accepted into Harvard if your parents are super wealthy.. or you have a good memory.. but neither of those things make for a good developer
@@tyrabjurman3584No. It's definitely more than just rich parents. I had very poor parents and made it to a t5 on full financial aid. Most people at my uni are extremely rich AND very talented AND hardworking (for the most part). It's alot of factors but I would agree that a large part is your life circumstances and luck.
Prime turns 4 min video into 31 min long. This is almost 10x developer and streamer 😅
He is a 6x developer
÷10 developer
@@mrmadhan8557faang level 🔥🔥🔥
Take a few more off since he loves agile. Confirmed in this video.
Average autist activities
prime calling frontend glue engineering and moments later getting hit by the same line for backend had me dying 😂
Hilarious!! 😂
and lets be honest its the same for both depending on the context
We all are glue engineers. Even people who make new libraries use a set of libraries to create.
Even the car analogy - you think engineers at BMW or whatever when they start making a new car go design an engine from scratch? Nah. It's all bolting together shit that's already been designed too.
I was told if I learned Rust, Linux, and Neovim... I would have a moustache like Prime.
It's been 6 months. STILL no moustache! #SCAMMED🤦🏿♂
You need a split keyboard to create space for the moustache to grow
😂
Using the wrong flavour of linux is your problem. Where is your gentoo build?
@@adam7802 I chose Arch because it's like Gentoo but you get to keep your sanity
@@Excalibaard Arch Linux alone was supposed to turn me into a neckbeard. All I got is a chinstrap. 😔 Scam!!
My experience from doing a CS degree decades ago, core subjects aside, even if you know more than the lecturers about some things, it fills in a lot of holes in your knowledge you don’t know about. Being self taught is great but you don’t know what you don’t know.
Yeah comp sci and eng degrees are what people rail on when they don’t know what’s taught in those degrees. You don’t learn how to code in a degree, you learn fundamental building blocks and how to think about how to engineer projects. How to find efficient ways to solve problems, how to simulate and model, how to create project scope, how to identify key problems and hinge points in which your project could fail. Learning python for instance is a side effect or a subset of how to solve a problem, ie a means to an end. You can learn that shit on your own anyway. Hard to learn how to model a digital low pass filter so you can tackle it with code much easier; though.
Yep this was my experience working as a self-taught, developer and earning my CS degree while working. I was more effective pretty much immediately.
I've worked with one (1) engineer who was self taught and good. Rest of the self taught people I've ran into in industry were interviewees who couldn't tell their head from their asses. I eventually stopped accepting resumes if they didn't have SOMETHING on there in terms of education outside of high school. At big companies these are generally filtered out.
Too many people without CS degrees entering the industry doing React and not knowing base JavaScript or Computer Science principles.
Reason why i didn't get into cs is because most of cs resources are on internet. Microelectronics is gate keeped as hard as it could so I choose that, I can always go and learn ASTs and stuff, but I can't learn how to grow GaN ingot.
"Pull request the size of Epst*in's list" - that's a killer line right there
Epst*in's list didn't write itself.
@@y00t00b3rnot to worry, nowadays most code is written by GPTs anyway 😂
it's a banger of a line...but it's also rookie logic.
people think that if you have a large app, and you break it into smaller parts, that you end up with the same size app but a million more pieces. maybe if all your code is procedural.
the "aint nobody reviewing that" that you left out was the best part of it
@@jearsh if you're not writing procedural, you are doing yourself a disservice.
Learn OO. Learn FP. Use procedural. Thank me later
Clean Code was helpful, even instrumental, in my early years of SWE.
I propose a rule to maintain society's sanity:
*if you haven't read the book, be skeptical of hot-takes about the book*
I have read (and re-read) Clean Code, so to follow my own rule, I'll just speak to that one.
It is extremely simplistic to reduce the entire concept to a simple rule of "4 to 6 lines".
I just flipped through the section on functions, and I couldn't actually find the "4-6 lines" rule anywhere.
He does say they should be small as possible, but the main focus is on things like:
- functions should do one thing
- one level of abstraction per function
- use descriptive names
- limit the number of arguments as much as possible
- limit unintuitive side effects
These concepts are generally agreed on, with some nuance at the edges.
It is sad how often "the baby is thrown out with the bath water" due to this telephone-game of influencers riffing off of lame takes that are super reduced versions of good ideas - to the point of not resembling the original.
Clean Code is great. I read it often. It was the book that I read when I decided to make programming not only a job, but my art.
Best response to Prime's lame rants about the clean code.
I'd rather read a call to a function called "checkCourseAvailability" than a complex-looking AND statement inside a "enrollStudentInCourse".
Since we're reading code more than we are writing, avoiding these seemingly small issues has a huge impact when developers are strangled with deadlines which are neither reasonable nor proposed by the development team.
thank god, I just bought the book and was so turned off by the video LOL
I think the main lesson is that any coding concept can be taken to the extreme. Dont blindly follow coding concepts. Only implement the rules if they make things better.
How does he define “one thing”?
Candidate: yeh so this is how you build an engine..
Interviewer: but can you build an engine in reverse order?
Can you build an engine in such an order that you can drive it a little faster after each milestone?
@@Kane0123hold my beer
"How about I interview instead, are you qualified to interview me?"
@@Vysairgenius right there
@@Vysair you smashed both his moral and the chances of getting the job
I learned programming like a slow burn, and being able to combine knowledge of so many different technology concepts now is extremely valuable. Knowing Linux, networking, virtualization, security, scripting, THEN programming feels so much better.
Im on the same path, currently focused on malware since its related to all of them, got good feelings about it
The easiest way to have a consensus is to make everybody angry.
The problem is that there are too many people who prefer a safe route, or simply do not understand. I am working on a space combat/exploration game, and I have a certain vision for it. A LOT of parts have to harmonize for it to work. One friend suggested I scale it down to encompass maybe 10-30 solar systems, which I then populate well with content. This is not my vision. My vision is to have near infinite galaxies with billions of solar systems. To bring out the best of procedural generation I can, to avoid barren wastelands of boringness. I already know the problems, and they are well fixable.
But players cannot simply move anywhere they want - FTL movement has its limits, which is resources and progression. To reach another galaxy, progression has to be very advanced - meaning you better have a capital ship. And once it is done, players could create galaxy crossing warp-gates.
Anyway, the point is that I cannot let my vision be compromised by people who either do not understand it or dislike it. I have no choice but to be the decision maker. Any form of Democracy would bring death to my vision. As of now, it has a chance to achieve greatness or total failure... and the safe way leading to mediocrity is likely closer to failure than success.
@@brianviktor8212 I agree to a certain extent with what you're saying, but the biggest problem with it is that you're going to lead yourself into burnout. The thing about compromise is that it gives you the ability to dictate and give parts of your project over to someone else while you can focus on the more important aspects. And I do think that your friend making a suggestion about going with 10 to 30 solar systems is a much better approach than trying to encompass such a broad stroke on something that you haven't even realized yet. What I think I mean to say is that if you've created an app and the app has zero users and you're trying to build the app to be scalable while still having zero users, what use is it to have an app that is scalable with still zero users?
I'm only seeing facts
@@brianviktor8212 Why do you need near infinite galaxies with billions of solar systems? What is the goal here design-wise?
@@ultimaxkom8728 The idea is to create a near-infinite world. Think of Minecraft - even though the world is big, almost everybody resides within the x,y,z coordinates below 2000. What is important is that you can decide to move anywhere, and there will be something. Sometimes it will be something excelling, which may cause players/guilds (and NPCs) to fight for it.
The additional galaxies serve as additional end-game content. It also extends this concept beyond the first galaxy. All except the main one will be special - more dangerous enemies, better/different resources, visual/structural differences. The algorithm will create something interesting.
I already have the algorithms to create the main galaxy, so why not just reuse them?
I recently had an idea to have a coding interview structured like so:
1) Your company has a little dummy project in a currently used stack (maybe multiple projects so the interviewer can choose which one to use in the interview)
2) In each of a dummy projects you have some amount of small tickets, like ones you evaluate around 1 or 2 in the sprint planning
3) When the interview starts, the interviewer gives the person the project, lets him onboard for some amount of time (e.g 15 minutes) and then gives the person one of the tasks.
4) The goal of the interview is to not watch how well a given person studied his binary tree conversion, or how well he knows the nitty-gritty of given technologies, but how he actually WORKS and SOLVES the given task, which is what a technical interview should be doing in a first place.
If anybody encountered a similar interview structure or (for some miracle) has it in their own company, please let me know, it would be interesting get some feedback on the idea
Won't work. 30 mins too little time to learn a realistic size codebase.
So interviewee does free labor?
It’s basically how I got hired. We do a project that is take home, build a small web app that does like 2-3 things using whatever tooling you want. Then we did a code review. It was all very realistic tasks and self paced, no leetcode at all. Just questions about knowledge related to the stack we would be using, general software dev knowledge questions. Still here almost 5 years later.
@@cushmfgdamn now i want to in too
Most universities in Norway have a mandatory class called Examen Philosophicum where you get an introduction to philosophy - as well as one called Examen Facultatum that introduces you to the scholarly tradition of your faculty, they're half a semester each. They sound like a good alternative to what Prime had to take :p
Being a car guy who's built cars and a software dev, the term we use for glued together is "Bolt Ons". Anyone can bolt things together but not understanding the impact of what you are bolting nets you poor results.
Reminds me of network certs enabling you to multiply your workforce by teaching a few basic guidelines based on the taught science.
So field workers mostly know, cut this, untwist that, crimp like this, with no clear figure for how things are done this way.
Then you plug the power meter, and graphs alone draw the figure, strangled cables, pairs too untwisted, you get the idea.
Very few care to know why that actually matters (and the few who do, time is short) and think you're being a pedantic diva about your cables and got nothing better to do to inspect zip ties.
Context is everything. Hard/fast rules are usually based in some truth but fail to live up to hype because each project and each feature has its own context which will steer experienced engineers somewhere in between the "rule" and some opposite of that rule. However, rules are useful to learn when starting out. You can better "break" the rules once you've had some experience following them.
I always thought it was contradictory that he rants against basic ideas like trunk-based development, CI / CD, clean code, and pair programming for a guy who preaches that the beginning struggle is an important phase when learning a new topic (which he himself admits that the struggle might be more commonly avoided when you rely on LLMs). I suppose one might overlook this contradiction if you only take his videos with a grain of salt and a pound of entertainment.
this. it is like traffic laws. as a beginner, you have to learn and obey all. as you gain experience, you make adjustments, learn which ones you can take a bit more flexible or ignore in certain situations
I found that clean code helped me work with larger code bases such as those found in video games. It greatly reduced the time required to find which part of the code to look at to fix a bug, and managing the entire project. As a solo game developer I couldn't possibly manage the entire game by myself without it.
In the UK university is basically _just_ the subject you applied for. I was shocked when I heard American Universities do tons of side subjects that are not related to the main degree.
Also while it's not needed to have a CS degree I can nearly _always_ tell when someone does and they're usually better / more well rounded.
UK bachelors is 3 years right? The extra 1 year in US is basically general subjects not related to degree.
@@foreigngodx6 Yeah it's 3 years
Same in Germany.
I found some subjects even here a bit off from what I want to learn and did not understand right away what he wanted to tell us.
At first I thought he was talking about some kind of pre university degree.
in the US you get the "extra subjects" in the uni/college, because they don't do it in the high school like in most of Europe.
@daredemoikari ??? History? Foreign language? Umm, yes - we do have it in HS
I see a lot of blames around clean code... from the people who never read it. They possibly heard some concepts like "function should do one thing" or "function should be less then x lines of code" and take it to the absolute without any context which book provides.
The agile manifesto was created at a meeting of "lightweight method leaders". One of these so called "light" methods was extreme programming. I feel like a lot of the current agile process schemes like SAFe just cannot be characterized as "lightweight" just by the amount of text required to describe it.
one of the regrets by the people who cocreated Agile Manifesto is that they didn't trademark the term. At a result, everyone is able to abuse the term to scam people
You mean we shouldn't hire a new Agile Coach to change up all our processes every 3 years?
@@chauchau0825More like, SCRUM people, amirite?
SAFe is an atrocity; should be declared a human rights violation
What is Scrum is kind of a red herring because it is simultaneously a Schrodinger's Paradox of agile it on the surface may sound agile until you go to implement it and then observe it and then when you observe it you realize how it is it both is and is not agile at the same time
13:10 - One alternative to leet code could be showing an actual code commit and asking the dev to do a code review on it. Include intentional but subtle mistakes to see what the candidate picks up on, and have him back up his comments by explaining why he'd leave that comment or why he'd let something go. Ask why he missed something, if he did.
To me, having them do a PR live gives way more insight into a developer's mind than having them solve a leetcode problem which rarely ever reflects a real-world scenario. There are a ton of devs who could solve leetcode problems all day but couldn't do simple things like the proverbial "center a div."
SCRUM has never been agile, is just recursive waterfall. Agile is about prioritizing people over process, and SCRUM is about prioritizing process over people. You should read the manifest and check how many of the statements do fit SCRUM.
Valuable comment, thanks.
I am not a fan of either, and I will likely never utter the word "agile" when advocating for anything. I've never liked it, but maybe it had become tainted by the carnival barkers from the very beginning decades ago.
But "prioritizing people over process" is a phrase I will keep in my quiver. It's great as an ethic, all on it's own.
But then also it's sometimes supposed to just be a starting point to build your own process but also nobody treats it like that
SCRUM is mostly just micro management. Deliver as much as quickly as possible with no consideration of technical debt 😂
Scrum is also just a process framework, that should be customized for the team, but it's been turned into law, probably because Scrum Master go through training nowadays, but don't actually learn to be flexible, just to "follow the process"; very "middle-managemently"
I don't think any of you understand what Scrum actually is. Scrum is a negotiation we lost before we started. A manifesto is nice and all but you can't write software through a manifesto. You need a process, and developers created one, and it involved stakeholders who were not developers, and the stakeholders immediately carved up their piece of the pie and then some, and we the devs were idiotic and took every single compromise. After being cucked by every other discipline we go back and blame the only bit of organising we as a field have actually done in this domain.
Listening to RUclips programmingfluencers is about as helpful towards becoming a programmer as listening to RUclips fitnessfluencers is about becoming fitter.
fr, but what do you think is the best way to learn programming?
Lifting is the best way to get stronger. Probably the same goes for programming.
But what do I know, I'm not especially strong or smart.
@@sadiqshaikh8715 i just felt like every day some new fittnessfluenser says a new method of training, eating, sleeping. Is the fastest and best way to get fit only to turn on it when the trend dies. Same seems to go for programming in my opinion.
You’re not listening to learn how to code but discuss the topic of coding. It’s theory for the practical.
@@em00kHow many of us have spent hours watching fitness channels for similar reasons and are still unfit?
I personally value the experience of writing C compiler 100x more than random boot camps or software engineering degrees.
My software engineering degree made me write a C compiler, and that was one of the best projects I ever did there. I don't know if it's common for other students in other degrees.
@@pelayovalero1312i think compiler courses should be required in CS. I'm in my senior year it it's changing me.. this late. i wish i dove in earlier but honestly idk if i could do it without the structure and guidance of my TA and professor.
"btw here's my boot dot dev link" - prime
@@pelayovalero1312 I'm so jealous when I read people learned to do shit like this. I don't even know what was the point of my course besides learning about some obscure outdated tech that won't help me irl at all. was this a bachelors btw?
@@cit0110I didn't go to zee college, but I was under the impression the better programs made people pick implementing a bare metal OS or building a compiler
"Money made including time being laid off average out to be equal working at McDonald" so true lol
This is really not true. Most software engineers are paid so that they could actually save regularly for layoffs, get decent severance packages for being laid off, and have a skill where they can be confident that they'll eventually get a high-paying job when they find another job. Most people who get laid off outside of our industry can't say the same.
@@vulpixelful If you're getting laid off a lot, IDK what to say. It ISN'T that common. The fact that the video creator and this guy are saying it's happening all the time is a really interesting claim. Most engineers I know have been laid off MAYBE once....? I've never been laid off. And most others I know haven't ever been. It isn't common at all.
But yes, you should be able to save, it is DEFINITELY not minimum wage income, I have nice cars & a solid amount of money & equity, people saying they get laid off all the time is absolutely nuts and I think it speaks more to the types of jobs people are taking than anything else.
@@MrSlowestD16 Who says I get laid off a lot? All I said was an engineer's salary allows them to save _on a regular basis_ (monthly, biweekly, whatever) so they would be more prepared for a layoff
@@vulpixelful I meant "you" in a general context. I agree with what you're saying, I'm just adding onto that that the creator AND prime AND the OP all agreed with the notion of getting laid off a lot, and in my experience they're pretty rare, so if one finds themselves getting laid off a lot IMO they should look inward, not at the industry.
Agile as it was defined originally by the people who signed the manifesto is 100% great, the gigantic problem is that managers co-opted the term to mean everything pointy haired bosses were doing in waterfall.
Yes! Some of them even hesitate to continue using the term “Agile” because it has been so misshandled.
No this happens with everything. It always sounds great and then you try to transfer it into the real world and it's less great. Always.
@@thewhitefalcon8539I think by definition aglie is supposed to adjust to the real world by adjusting to the team using it.
@@dv_xl which conveniently means the original manifesto can never be blamed for anything
@@dv_xl everything is supposed to adjust to the real world too. I've never heard of something that wasn't.
Saying Computer Science degrees is a scam, is so funny. Computers are more than just writing a javascript file.
This sentiment comes from the american educational system. People go hundrets of thousands in debt to get a confirmation of skill, thats unreliable at best. I don't think many people think getting university education and sound fundamentals at university is something bad at all. Haven't heard this sentiment here in germany, because it's free and actually about education and not about paying off a 'diploma and getting to know rich folk' fee.
Yes you're right. But american education is very flawed. I live in the Netherlands and with our bachelors you immediately go into the subject matter of your major
I used to feel like I was a little scammed doing CS, but now Im thinking the industry is generally underqualified and need less reliance on magic.
It’s the US lens. JavaScript will get you a job quick, while going in debt will get you homeless quickly.
What they actually meant is some College degree from certain institutions is a scam. My College program actually taught us a lot on business analyst, requirements, market research and project management, it's actually more like a business degree with some programming sprinkled on.
We've had the debate about take-home tests vs whiteboards and if the take-home is designed to be done within 2 hours or less, how is that meaningfully different than asking someone to take an entire day off from work to do a whiteboard in front of their faces? A 2 hour take-home to then open yourself up for a more meaningful collaborative conversation about how to iterate on it from there I think is a perfect way to introduce a candidate to a team without adding the pressure of someone watching you reason about a problem in real time.
For leetcode you literally have to prepare for months , no matter how busy you are they don't care if your college is over and you don't have bunch of free time with you ... While take home you can give literally 10 min each and get done with it
Companies out there will ask people with families and full-time job to provide a portfolio links and yet we are still talking about whether or not spending a few hours on a task is too much or not.
Most of my "2-hour-take-homes, no reasons to worry brother" turned out to be 10+ h assignments
And that's the way it should be, takeaway assignments trade psychological onsite pressure for offline complexity, you just cannot give an offline leetcode-like problem
I can't decipher your run-ons, so not really sure what you're saying, but you can easily cheat on 2-hour take-home challenges by not having a life and spending 20 hours on solving one.
My favourite interview method: I tell the candidate "Bring a personal project that you've made yourself and that you're proud of. It doesn't matter what it is, it doesn't matter what language or what technologies you used. Bring something that you've made and that you're proud of, and we'll discuss your code." I don't care if they can or can't invert a binary tree on a whiteboard. Show me your code! It tells me far more about the candidate than any brain teaser question ever could (and why I insist on being a part of the interviewing process; I have yet to see HR hiring a good candidate on their own. They always hire the person with the flashiest resume, which is always a terrible candidate.)
What if the candidate brings a project that isn't their own? Then they'll have a difficult time answering high-level questions about planning, workflows, problems, design decisions and further improvements. If I ask "Tell me about a problem you had when making this, and how you solved it", and they reply "I didn't have any problems", then that's a red flag.
"I have yet to see HR hiring a good candidate on their own."
- I have yet to see HR hiring ANYBODY on their own. What are you talking about? I've never heard of that - ever - hiring managers are always involved in the process, wtf....
There's tons of problems with bringing your own project.
Best way to interview people is to ask them questions about what they'll be working on. Present them with real problems that you or a co-worker have run into, and discuss it with them, have them write some code to solve it, or do part of it, etc. Whether they can invert a binary tree is useless, true, but discussing a project they've worked on is only appropriate for a manager interview, it's not appropriate for proper technical interviews.
The amount of combined sarcasm, inside dev jokes and twitch humor truly drained my brain power. But I loved it.
My cousin wanted to skip going to state college, instead starting his own business, and he tried that "Zuckerburg dropped out of Harvard" bit on his mom. She told him, fine, you can forget college and start your business as soon as you've also dropped out of Harvard. I laughed so hard.
20:50 What I love about Neovim is that personal setup and plugin development is literally the same thing. You can decouple your config and make it a plugin and in reverse. It's especially powerful when you can peek how plugins did the thing you try to configure.
Those methodologies that encouraged toxic open plan environments have a lot to answer for. In the old days we seldom had our own offices, but we at least had a semi-private area in which we each worked. Now there are no barriers and you sit so close together that you're almost on each other's laps.
12:40 Interview alternative to leetcode is: few language knowledge questions (e.g. Java collections hierarchy) + system design (e.g. go through your thoughts on designing delivery app ) + code reviewing (give some project's PR and see what interviewee focuses on).
Code review… that’s an interesting idea.
Refactoring task is also a good one. Or giving the interviewee absolutely horrendous code and letting them explain it to you
I agree, even take-home projects are better than leetcode. Why? It usually takes 6 months of practice to get good enough to be able to get a job. This means that you have to spend at least 1 hour each day for 6 months vs doing a 10h project.
It is much better to ask relevant questions about programming languages/technologies and reviewing a PR is a good way to filter out coding monkeys who memorize leetcode problems.
Agile is a great 5-sentence idea turned into several books. The reality of agile turns agile into the thing that agile wanted to fix.
I feel like we are being scammed by Prime here. "I have mixed feelings about leet code" => No, for the longest time you were fully FOR this "secret handshake that will get you employed".
He always said he did not like it, but it's the way it is and if you want a job, then you need to do it. The necessary evil he sometimes called it.
@@SandraWantsCokebro has a clip where he writes a quick sort just to flex on chat
Making a quick sort is a flex?
@@DanDelarge strawman
7:43 I completely agree!! At my university, I had to take many writing classes where I didn’t learn anything about computer science yet we didn’t have a web development course. They require us to take classes unrelated to computer science and math, yet they force us to learn web development on our own.
Agree 100% with you about DSA, kids never understand that 'cause they don't know how valuable it is but one day or another they will be in need to learn it if they want to grow and make the next step
I had many interviews with candidates over the phone or video chat where it's obvious they browsing Google, SO or using AI to answer the questions. But my favorite interview, is one candidate who actually had the confidence, or maybe ignorance, to tell me "hold on, let me google that real quick." That was a short interview but I'll never forget it.
Tbh I feel people just think its cool to dunk on the books on Clean Architectures and SOLID(I read through only these two books). If you use the patterns to solve the problems when you need the benefits of it, it'll make more sense than following it word for word for word all the time every time and then complain that you have to type more or whatever.
Yeah functions being only 4 lines is a dumb take lol, buttt there's still some good advice in them.
I would take 4 line functions over 4k line functions.
Small functions aren't that bad as well IF the functions are at the same abstraction level such that you don't have to switch to the individual function to understand one function
It's another case where you need to actually know and understand the principles so you know when to apply them and when not to
The industry overhyped both books and way too many people were parroting them without deeper understanding or asking themselves if using them is the right thing to do, so now we are one the opposing end of the pendulum swing.
I don’t know why people focus on that the lines of code guideline the more important advice was functions should do one thing. It’s like a single sentence some disagree with and then they dismiss the whole book wtf.
To be honest I find this anti-clean code and SOLID trend bizarre, why the hell would you throw away the best practise lessons learned with basically no justification.
Frontend? I remember s and table layouts. And we couldn't convince customers that "the web is not made to look they way you want, the tools don't exist, we have to cobble this together with sticks and ducttape". Or use flash...
Trade schools for programming exist... We hire from them a lot. It's usually a technical college, but it doesn't go low level. It's surface level, but it's good
Maybe I misunderstood Prime, but I don't think that LoB means that you put all code into single few-hundred lines long method like Prime seems to understand it. You still divide code into smaller methods for readability but put them in the same file so that everything needed is local to the core method. Extracting and giving a name to a meaningful portion of a long method eases reading and understanding a lot.
I have a phrase for the opposite of "locality of behavior". When you have to jump back and forth to try and understand what's going on, it's because "everything is defined somewhere else".
The best reason to break some statements into their own function is because the same functionality is needed from multiple call sites. If you're just doing it for stylistic purposes, and not to avoid repeating yourself, yer probably doing it wrong.
Use early returns / guard conditions to avoid deep nesting and then just let it be a couple hundred lines if that's what's needed.
Seperate intent from implementation details. Nothing is worse than wading through a few hundred lines of code to reverse engineer the devs intent.
100% this. That does mean some methods end up being a handful of lines long but the benefit is that the larger function is easy to read and understand. It's just pushing things down levels of abstraction so it's easier to reason about what is happening at that point in the code. It's analogous to saying "I drove to work", rather than describing in excruciating detail your whole journey to work. Sure you can get carried away with it, but it's just a case of using your better judgement and being pragmatic rather than dogmatic.
@@-Jason-L
Use long, descriptive function names or doc-comments or commit notes for intent. If the dev couldn't communicate via that or variable names or test logic then functions for their own sake isn't going to help either.
I usually care a lot more about what the code actually does than what the dev was hoping it would do, though. If the non-technical stake-holders (the ones who don't read code) can't tell you what the software is supposed to do, that's a much bigger problem than any code style issues.
@steamer2k319 that doesn't explain the actual logic. You have to reverse engineer the "algorithm" from the code - after 30 years in the profession, that is what i consider bad code.
@@andyk2181
Yeah. I've learned, especially when debugging/troubleshooting, not to trust a function to do what it says in the tin. However, if the definition is inlined, a lot of the time you can see the bug just by a quick reading of the code in e.g., the GitLab web UI without even having to fetch a local clone.
Whenever something goes from 'idea' to 'massive industry around training and certifying people to *correctly* implement that idea'.
You're screwed.
we actually have tradeschool for software development in my country, that's the path I took. 2 years of hands on development, it was great
When you gave that shout-out to LSD while studying you just gained my loyalty my friend
4 minute video into 32 minutes reaction is a certified prime aging moment
I've actually talked to Uncle Bob at a Ruby conference years ago. I believe he got the 4-6 line number from working in Ruby on Rails. Usually those functions are very short and Ruby devs would get bent out of shape if you wrote longer controller functions.
And we probably got that from Erlang
@@vulpixelful yeah it's likely the Ruby community got it from somewhere else.
😅 Good to know I am not the only one calling for locality of behavior... One of the first open source project that I have read, lit. has 3 functions per file each always calling functions on different file all across +60 files and it is just an endless 🍝.
Thanks Primeagen, here a guy from Bilbao. This is more fun than watching Netflix by the way. Thank you very much!!
In Australia we don't do the "year of general education" that US universities do - though there is plenty of space for that in your electives generally, so you have some freedom to learn interesting things that aren't 100% relevant to your major or minor.
That said, I think the international study market is particularly interesting, because post-graduate degrees (like masters) are very popular, largely because they're a little more concise, but also because they open up international job opportunities too.
I do agree with the sentiment that trade/tech schools might be a good fit for IT (and I think that education should still come with the same level of respect, employability and count towards migration for foreign workers). But that's something for society as a whole to sort out eventually.
I was looking at a local junior college with my son, they had all kinds of great tech centric majors. The networking degree has Net+ and CCNA built into the program. The certs are worth more than the Associates degree that they come with! This is a good sweet spot, I think. Learn a vital skill without completing sacrificing the educational value of a core compliant college.
Software Engineering is the biggest scam
>intensified triggering initiated
Not really
Skill issue
Why?
chill it's just wordplay lmao
The problem with unqualified (or the requirement to achieve) "locality of behavior" is "reference [un]transparency". That is the unsolicited state changes or "the pulling of the rung from underneath".
I always understood CC as more of a guideline than a strict rule. And it's the cause for its controversy. It is generally solid advice but put to the extreme and making it a strict rule just hinders progress. And when organization is everything, there is a huge overhead on being creative and productive. I saw 1000 line 4 deep nested switch cases in production code from a big company, and we can agree that this is just garbage. It's all about finding the balance, and never about just following one advice. Read, learn and improve, but don't get stuck on advice. Best
"6 months apprenticeship, no way" in Europe it is MANDATORY to do so if you want your Bs/Associate's
LoB is the polar opposite of clean code.
You're wrong.
They go together like a horse and carriage.
For the life of me, I could never imagine a tech dude live stream on YT can be so funny and insightful at the same time.
Way to go!!
The VIM discussion is reminiscent of the old VIM vs EMACS wars
Regarding interviewing and hiring: people used to work for just one company for their life. If companies didn't force people to keep hopping for career advancement or salary, ANY interviewing process would be fine and acceptable, because it's a once or twice thing in your life.
Prime: The middle ground is where the worst ideas are from
Also Prime: we should have something in the middle of bootcamps and degrees.
Those unspecialised years at the start of US college do seem like a waste of time though. Most places don't do that.
The 4-6 lines of code per function could be a remnant of old NASA coding guidelines for space-/aircrafts. They suggested that a function should be printable on a A4 sheet of paper with some specific fontsize.
9:03 As a non-American, it's interesting to see what you do at college.
In Germany we get e.g. our CS degrees at university or at Fachhochschulen (some translators say you can translate that as "technical college"). But we only do stuff for our degree there except if we voluntarily decide to do something else additionally.
What Prime is talking about here is something we would do at the schools before that, e.g. the Gymnasium (one the schools you can go to after elementary school until 12th or 13th grade (we don't reset the counter)).
13:40 I like apprenticeships, also for programmer (notice, not Computer Scientists). But it's not a 6 month thing or something along these lines, it's a standardized multi-year apprenticeship (in case of programmers it's 3 years; yes, the same system exists for all kinds of jobs) where companies and job schools work together (with you working for some time at a company and studying for some time at school) which you do when you are fresh out of school (normally). You also get a certificate afterwards (so you can apply at different companies) and normally also get hired by the company you made your apprenticeship at. And you don't do some specific technology in that time, but more generalized.
I wanted to comment that as well
American, that's what I did. 2 year technically college ONLY programming classes. No debt either. That was 10 years ago now
I first heard 4-6 lines of code in my first programming class using Pascal over 40 years ago. Uncle Bob didn't create that.
That's the idea of locality in some way. I think clean code just went too hard on it.
It's just a meme at this point. I dont think anyone claims he made that kind of a conclusion besides people that are just trying to purposefully bait people.
@@ArturdeSousaRocha book has like hundreds of little advice that are pretty good. And yet people somehow only bother to talk about this one point about number of lines in function that so obviously depends so much on language and project that is being built and obviously if you have function that case a switch case in it with 100 switch clauses then obviously function can't be 4 lines long. Much better advice that can be found in the same book about functions is that functions should maintain single level of abstraction and that function's name should describe what it does. If you can write function that is 200 lines long and it maintains single level of abstraction and if you gave it name that perfectly summarize what it does then you are still following most of advice of the book.
Me seeing the video constantly in RUclips every single day: I'll just watch it later "Add to Watch Later"
The Prime made a reaction video: Stops everything to watch the video. It's the Prime Time!!!!
There's a trade school called 42 you might like to look into. It starts of with a 1 month boot camp, but the boot camp is just a selection process before you can truly join the school. The core curriculum lasts from 1 to 2 years and you can then stay longer to learn about more specific subjects
The school has no teachers and forces the students to learn by building projects and communicating with other students
I have a friend who is in it now, and another friend who has gone in to help mentor the people there. I can see the progression in my friend and would say it's much more fast paced than a university CS degree.
I'm more worried about them trying to find a job after especially I live in the city where 42 runs and know the job market pretty well now, unless they have connections to some small to med level companies it will still be hard to land your first gig without a classical university degree.
I did their "pool" or selection process. Wouldn't recommend it for anybody. Their teaching style is based on fear and leaving the students with vague and imprecise requirements, and then rejecting your assignments because you used stuff that's "not allowed". Then you ask them what's allowed, and they say that you should figure it out yourself. It was not an emotionally healthy experience. I still fail to see how throwing a bunch of beginners with no orientation into coding, give them no theoretical or partial guidance and then not let them use printf is some how a good teaching methods
I'm sorry it felt that way to you. The "pool" is complicated and the students from the years before are not allowed to help you during it as it would be unfair if you were helped and other candidates were not.
As for using disallowed functions like printf, I think the goal is to make most students start off at a similar point since people that try to prepare for the "pool" will have learned about printf and not about syscalls like write. (The goal being to not give too much of an edge to people that have the time to prepare, for example if you have children you would not be able to prepare as much)
It's also about learning about abstraction level since you start your education using C with only syscalls and then proceed to use higher level functions once you have a better understanding of the basics.
I have do disagree with you when you say it is not indicated what functions you are allowed to use as they are clearly indicated in each exercises.
The goal of throwing the students at problems without any ressources apart from a few videos is to see how good they are at finding information with nothing more than the internet and they fellow students. This is a skill that is necessary if you ever want to be able to create a project without the help of a tutorial or a mentor
(English is not my first language, I hope this wasn't too hard to read)
@johnsitarski4158
To my knowledge all 42 schools are free for the students and sponsored by companies that invest money in the school to make students want to work for them, the sponsors may be a good start for your friend to look for a job if one of them works on projects that interest them
Uncle Bob's work has got me to think, but by the time he published it I had a couple of decades of learning the hard way. Pragmatics usually rules and hard rules drool.
I don't understand design pattern, and I have to protect Jr from understanding it!
About the college thing, I think one of the biggest problems is finding good teachers. Usually CS teachers are good teachers, not good software engineers, so they don't know how the industry actually work now.
Just write good code. Doesn't have to be complicated.
People conflate bad execution with the idea being bad....
As a gear head and a software engineer, you couldn't be more right about that analogy, nailed it.
6:25 Imagine being part of a team where everyone is bilingual in Spansh and English and its not expected to change (say, you work in a team of translators). You're trying to figure out what language you should for your internal documention. You can choose Spanish or you can choose English, both will ~work~, however, a compromise where you alternate between Spanish and English in the same document is a horrible solution.
On the point about small functions: The 4-6 lines I think is arbitrary but it should be something like the function name describes what it does without seeing the entire implementation, and if the function is small enough then it's likely that the function name doesn't lie. So instead of reading 6 lines of code to know what is done you just read the function name and understand what it does. It's an aesthetic/readability choice more than anything.
I don't think it conflicts with the LoB principle as I understand it from the HTMX explanation. You are still calling the functions locally. There isn't any invisible system assigning behavior. You explicitly call the behavior. It's visible locally, even if the full implementation isn't.
Compare that to the HTMX example of jQuery where you have a section of HTML with no visible calls to anything, and a locally invisible system assigning behavior to it. You can't know that "button" calls "click" from just looking at the button declaration. The "better" from HTMX is a function call located on the button.
In fact I think the HTMX explanation in their point "Surfacing Behaviour vs. Inlining Implementation" points to this. I might misunderstand it though. It's got Latin in there and I can barely understand English.
I’m technically a “scrum master” but the key is to trim all of the corporate bullshit part of the methodology, fight for your teams development time & meet on blockers and design. Or you may as well make the mantra of Agile (always changing and never deliver)
Clean Code was an amazing book that helped me tremendously
My dad was one of the best mechanics out there. Top tier mechanic at a top tier rolls Royce/jag shop in Beverly Hills.
Dude has built engines. It was also taught how to do it in the 80’s at his trade school.
actually the "few lines per function" is epic if used right:
1. its easy to cover properly with tests
2. you can reuse that method
3. when reading small function that call small functions (with good names) you can understand the flow with ease instead of following whats going on.
Blows my mind how software engineers will soon discover how apprenticeship was always the solution, and they were merely blinded by their own arrogance to admit it.
Hard disagree here. I’ve worked with engineers in high school who were more productive after one week than engineers with multiple years of experience. The difference is their ability to break problems down and that’s a something I want to figure out before I hire and invest time in them.
Scams in Software Engineering : Every single Boot Camp and nearly every "Coding Influencer" on RUclips.
The issue with "Probably shit company and you probably didn't want to work there anywhere" is that the alternative is flipping burgers for minimum wage or breaking a back for $17 in a warehouse.
I'd rather work at that shit company for a year just to get some experience under my belt and I know there are many of us where this is the reality. We don't have parents to fall back on, rent and insurance is due; we need a job just to survive and look for another job.
Insurance is pure extortion
@@rusi6219 It's not pure extortion.
It's only mostly extortion.
@@rusi6219 get ready to hear about rent
@@maciejglinski6564 at least with rent you enter a contract and it isn't imposed upon you
The reverse normal distribution feels so true. It reminds me how I feel every time a scrum master (or a facilitator) gets in a heated discussion trying to find a compromise and move on: that idea is BS.
Came faster than Prime configuring another Vim macro
I started programming in high school, been working in the industry 5 years I’m over 30. It’s ridiculous but I lost my passion but also ability to actually program. Seems day to day work has degraded my skills.
I’m now rediscovering the joy, by starting to program without expectation.
Take a problem / goal
Break it down as much as you can
Google things you cannot figure out on the top of your head.
Build, build and build some more.
Yes I know design patterns, database management, scrum, tdd, devops, etc, yet I freaken forgot how to just program
_"Agile is communism."_
True on so many levels. Even to the point that back in 2013, I was in a Scrum training and people brought up the concept of identical paychecks for everyone.
I was baffled: "So someone with 20 years of experience should get the same as a college fresher?" - "Yes, _because in the Complex you don't know who contributed how much, and a team succeeds as a whole."_
But some are more equal: _"The Scrum Master should always get more salary than the highest-paid developer."_
If your BS detectors aren't tingling by now, you may need to see a psychiatrist.
There's so much nonsense going on in the Agile space, and it's really hard for an outsider to see whether you're getting taken for a ride.
Disclaimer: I spent over 10 years as an Agile Coach/Consultant.
5:40: it's a common issue. The trap of thinking that small teams must communicate in a standardized way. So you end up with teams spending time doing stuff that has nothing to do with their core function. Reporting and documenting instead of solving problems. We see this in healthcare in the form of "structured medical records" which eat anywhere from 30 to 50 % of a doctor's daily working time.
Canadian colleges are basically the trade school you're asking for.
Note: in Canada, colleges and universities are different.
Yeah the performance thing is very important but only in specific applications. I had to build a routing engine for a company working with the emergency services. Performance there matters..."sorry I'm just waiting for the system to figure out which fire engine can actually route to the incident quickest" "But my house is on fire :( "
The moment programming stopped being about solving problems and started becoming about buzzwords and jargon, it's gone downhill from there.
Bigbox knew. He totally knew. It's not a conspiracy theory if it's true. This video was a targeted attack against Primagen. And I loved it.
@ 1:50, @ThePrimeTime is incorrect about the premise that Uncle Bob has a hard suggestion of 4-6 lines. That is not what the book says, that is not Uncle Bobs suggestion. Without correct premises, it's a straw man argument. There are a lot of valid & insightful criticisms of clean code, but those start with a correct premise.
The book says (page 34): "The first rule of functions is that they should be small. The second rule of functions is that they should be smaller than that." A bit further on the same page, as an *example*, the book states: "Every function in this program was just two, or three, or four lines long. Each was transparently obvious. Each told a story. And each led you to the next in a compelling order. That’s how short your functions should be!" The advice on function length is that functions should be as small as possible in order that they are transparently obvious and tell a single cohesive story (and to get there, they in effect need to be short). That is _not_ a flat statement that all functions should be 4-6 lines long. There is both a distinction and difference there.
Personally, I think there are a lot of caveats to that advice and it's a deeper story. I think there are elements of that sentiment that are good. More is needed though for it to really be good advice.
Intentionally hard apps do exist. Well, one does. Oracle query designer for finance.
It litterally got sent back to dev, due to "design is overly accessible, to the point we belive it will reduce contracting oppertunities".
6 of the team of nine walked before the end of the day
9:55 My Software Engineering degree made us take
a Compilers class and make a compiler
OS class to make an OS
Data Structures and algorithms class to implement these and then test them against each other
much more hands on
it was fun
Where I live (east coast Canada) community colleges are a bit different than the states and are considered trade schools. I'm just finishing my first year in programming and it's a two year course. I don't know anything about ABET accreditation, but it is a well-recognized college with locations all over the province.
We cover pretty much everything you listed; Git has been required for handing in projects (started the second semester), we've learned both Windows and Linux, we've briefly delved into cloud computing, etc etc.. It's nice to get actual tangible skills.
Edited to add: In order to actually graduate from the 2 year program you have to have a 5-week work term as well. Forcing you to go out and make connections in the industry and getting some minor industry experience.
Man I have recently know you. But you have already inspired me as a developer and as a person to be better just by your takes and opinions on this video. Definitively going to check your other mentioned opinions referenced in this video.
10:00 Norway actually just recently started offering a trade school course to become a "IT-developer" as a split path to the existing IT trade. Same structure as becoming an electrician!
The first class is graduating this year, so its really exciting to see if it will start showing up in job listings as a qualification soon.
OG Agile: If you just f***ing did the work and allowed for scope change, and didn't have arbitrary deadlines.
Languages that don't indicate types are the worst when everything is split into many little functions. You have no idea what the function being called returns until you dig into its code, and the code it calls, and so on through 50 layers of function calls.
As a poet, I greatly appreciate your many shout-outs to the Artist Language . And I wonder what code snippets of your own have ever felt like Poetry?
I am navigating through a million-line codebase and I keep asking myself what would happen if each function is actually 5 lines of code 😂