A month after reading chapters 1-4 of Clean Code, I had to stop visiting the programmer humor subreddit because the memes about spaghetti code were upsetting
I’ve been.a senior engineer and mentor for over 20 years and I will still say “Neither do I, but lets figure it out” As I feel like that is the most honest statement that is also the most inspiring.
The ability to convey one’s lack of knowledge and at the same time confidence that said mentee is in good company it’s a tough balance. But I do agree, being honest with one self and each other is the better form of team work.
@@rafaelrocha3991 the idea is to show the juniors that seniors aren’t some special all knowing beings with unattainable abilities. So sitting down with them and teaching them how to understand the code, to allow them to see a senior problem solve just like them. That is how you alleviate imposter syndrome. Even if I know the code base beforehand I pretend not to so we analyse together.
That's the right answer. You're not going to remember every batch of code you wrote/worked with and most of the times you'll need to "get back to it". Back to the "zone" you were at the time your created/worked it.
Prime is right about knowing your language, but one reason why this is a common issue is that people have to learn insane amounts of meaningless garbage api or framework semantics or any number of things stacked on top of the actual language. And the worst part is knowing that stuff grants you no deep knowledge, but sucks away your time and energy.
Prime wouldn't know. He wants to write his CRUDs and tower defense games in vanilla while casually dropping the sheds of wisdom on show React's state flow is not unidirectional because it has to ping the server at some point. "Waterfall does not fall from top to bottom, because technically the water evaporates and it's, like, a circle" - Primeagen, anno 2069.
Exactly. I have to know 3 frameworks, 6 languages, everything aws, Linux on Linux, servers/networking, etc etc. I wanted to master the 2 languages I use the most, but I feel like there’s no time when you have this massive amount of things to maintain and create.
@@Reeg3xthat is the proper mentality, programming languages are essentially just the tools we use to write rules for computers to understand, because pure machine code is unintelligible to us, attempting to “complete” the language at such a level wouldn’t achieve much for your work. Just learn the best tools for the job in the most general way, anything beyond that really comes down to what you are trying to accomplish.
no, no you don't. you learn your algorithmical logics and you look up frameworks constantly afterwards. don't trash your head with something which is easier to look up than something which is easier to understand. anything which you use all the time - you'll remember eventually.
No. The bad programmers think they are good, the average programmers know they are bad and the good programmers know they are good (but also over estimate other peoples competence/ knowledge). Standard Dunning-Kruger observations.
There’s this obsession with oversimplifying and speaking in generalities. A ton of decent programmers think they’re better than they actually are. I surmise that would be most of the people here (maybe myself too!)
A good software engineer is one who, when faced with stuff he doesn't know can confidently say "I don't know what this is and how it works but I can figure that part out if you give me the time". nothing more and nothing less
@@solarydays you haven't been an interview loop so let me explain. hiring manager is the person you will be reporting to when you get hired. they are mostly engineering managers, they do technical interviews and make the final decision on whether you get hired or not. hr on the other hand, skims through cvs to see if you have the related experience and put you in the loop and handle all the proccess as a support function. they don't get to decide whether you pass the loop or not, thats for your prospective manager and other engineers that interview you to decide. only behavioural interviews which are meant to see if you are capable of social interactions and cultural fit. other than that, hr just supports the logistics and legal paperwork of the loop.
I am a self taught programmer, well over 25 years ago i taught myself to do it. I gained the ability and motivation to train myself serving in two branches of the military. What you should be learning in school is how to train yourself. If you cannot self train, programming will never be your field.
The best programmera Ive met were the teenagers coding their amigas in as. Coming up with optimization and tricks to do cool 3d effects in the 80ies. Them you meet the university software people, and they hardly know Java.
Though this is true, I still believe the hiring system is all messed up. Basically we can train ourselves through self study and programing its that easy but it does help alot to have a mentor. I feel most mentors will be a classmate but never someone at work because unless you train yourself , it seems you wont get a job. A few exceptions like SkillStorm will train people but it will cost your freedom for a few years.
This hit me hard. I literally had a “lead” who was imposed upon me years ago who had no idea what he was doing. When he decided to invalidate all of the work the rest of our team had done by switching frameworks over the weekend, I asked him why he did this. His answer was, “I went to Rose-Hulman and you just went to IU.” I quit two weeks later.
I noticed something else you said; you said "after 15 years" in reference to not being able to do quaternions. This is another thing early stage programmers need to get used to is, unless you continuously do something, you will forget that thing. Programming isn't like riding a bike, it's something you must keep on top of
In my opinion, I find it easier to not try and keep on top of obscure things that are well traversed. I can just quickly re-learn it when I rarely come across it. So with the bike analogy, I wouldn't constantly practice riding a bike, because when I very rarely, if ever, need to ride the bike, it will only take me an hour to learn (even less to relearn).
Impostor syndrome: not that I cannot learn stuff. But I find myself in the middle of my work project, overwhelmed by realizing of how much I don't know / didn't learn yet / tried and it turned out bad / seen other people doing it a lot better, yet I'm getting money for this. And not that I cannot learn, but it's just too much and I'm exhausted, let alone I don't want to learn all of it because tomorrow it'll be replaced because this framework will be cancelled and replaced by shiny new thing / I can just Google or ask AI next time I need it / there is no single right answer on whether this architecture is good / I just wanna go to sleep.
ya and company would just focus too much on current problem, and u get obsolete more quickly. Later or now, we have lack of job now..... Probably we need some AI basic wage now, not for whole world but is transparent and for people to online with logging through internet and interact with other people in different scenario: gaming, learning, sharing. Those whose live in poor countries, they registered by government list instead, and whole AI basic wage should pass to take care ppl life if they cant afford online.....(soft skill or intellectual skill nowaday- like online companion and sharing knowledge)
I think your view is a bit too pessimistic and you need to contain your thoughts. Focus on your task at hand do what must be done to finish it. Then start on the next. Things are not replaced that fast and the knowledge u get has some carry over between frameworks and languages. No there are no true answers but with time it will be easier to evaluate pros and cons.in the meantime hopefully u work with some seniors that have architecture responsibility
Early in my career, my manager asked me why I preferred this programming language over that other one. And he followed it up with "all you do is move data around". This stuck with me, for a different reason than what he meant. When you view everything as reproducible logical data flows (I'm not a fp bro I promise), then not understanding something simply means, you start at the part you do understand and walk (back) from there - one step at a time. There's no magic, no fear or fomo, understand there are things you don't know, that that's okay, and that those can be learned just like everything else you learned thus far.
A good manager! Because I generally don't care about what language is used -- sure I have preferences but ultimately most of IT is truly about solving trivial problems. I always chuckle when colleagues in ETL data processing say: "this is hard!" I think back to when I started and had to create hardware to actually test my code for correctness in medical equipment. That was so much harder than ETL will ever be. And that was even an entry level job designing and building simple insuline pumps. That you got to do at least for 3 years before moving to mid level more dangerous medical equipment.
> ...then not understanding something simply means, you start at the part you do understand and walk (back) from there - one step at a time. Oh that is good! I need to take that to heart, as it's something that applies in other areas of life too!
Likewise, a good friend of mine said to me once, many years ago: "all commercial / business applications are essentially database projects". From that point on, as soon as I tackled a certain level of SQL competency, I was just like "ok, in this situation we communicate with the database like this, in the other like that..." and so on. It was just a "pick your own adventure" after that point (always taking into account the needs of the job at hand).
@@PhilipAlexanderHassialis this is why I’m fed up with IT! I’ve been doing since 1989 part time and full fine since 1993 and it’s the sane shit just different OS and language and there are no quantum leaps in software. It’s just more and slower abstraction. I guess this is why I still make a lot of videos on (C64) assembly. That’s the only interest thing for me, to do things on tiny machines.
Try using positive reinforcement to Junior Devs, though. Not everyone can handle being told “you suck. Do better.”. It may motivate and inspire others, but not everyone does.
I am constantly learning new stuff and from this point of view I am a constant learner of even newb - except having decades of experience in SD. And I confess: what I learned 6 days ago, I already forgot the nitty gritty and I have to look it up again. What's important though is to be able to ask the right questions. If you don't, you won't get the right answers. Conclusion: Look up stuff as many times as you want without shame or guilt but make sure you're knowledgeable enough to be able to ask the right questions.
People too often feel bad because they compare their abilities to someone who is better and think the gap is due to lack of intelligence or talent. Usually what they lack is knowledge and experience. And that can be acquired by almost anyone. It just takes time and effort. The way to combat impostor syndrome is not by collectively throwing our hands in the air and saying "shit's too hard even for the best of us, so don't worry too much". No, the solution is to flip the script and use it as motivation. To say "while you may not be that good yet, you can and will be, but only if you're willing to put in the effort". The only true impostors are the ones that give up trying to improve and just coast.
This is the correct take imo. Feelings of inadequacy don't just manifest out of thin air, they're born from comparison to (perceived) peers of (perceived) higher competency/skill. But impostor syndrome is a framing mistake. If you're working in a technical field and have colleagues who are "more competent" than you then you aren't an impostor, you're a learner in luck. Don't look to others for determining your placement in the "competency hierarchy", but for guidance on how and what to learn in order to improve. You may think "I'll never be as good as my colleague Amanda". That may or may not be true, but it's hardly relevant: you _can_ get better at what you do and as long as you're improving, you're doing just fine. Knowledge is less like a bank account, where all that matters is how much you have, and more like a lake. You'll be able to tackle more problems more easily if you have a higher volume of water, but what's really important is the shape: what are the places where your knowledge is deep enough to be useful? Don't think "I wish I was as good as Tim", think "damn, Tim sure is good at writing performant database queries, I'll ask him what I could do to get better at that". When someone is more proficient in something than you, don't assume they are inherently superior; assume instead that they cared enough about that skill to put in the time and effort to get good at it. And you can do that too. In my opinion, in the field of software engineering you're only ever an impostor if you give up on getting better at what you do.
Along a similar line, as an older developer (40+ years of programming), I find that there are a lot of "senior" or "tech lead" developers that don't actually understand how anything works outside of their library or frameworks of choice. Particularly when it comes to Security or Performance. If the framework doesn't do it, they instantly turn into a puddle of goo unable to solve the most basic issues, or make intelligent decisions.
Exactly why I prefer to write my own code based on the language, not some framework. I understand that someone proficient in a framework can probably create something much more quickly than I can, but when it comes to debugging, I can handle it much better.
Recently I encountered one. Personally I am so very very glad that I have just around numerous diverse technologies and tools and languages and frameworks. It forces you to be stronger overall in understanding a new problem domain, AND considering multiple ways to solve a problem (and also to see horrible inefficiencies and code smells, that someone else just overlooks because they have The One True Way to do things, even if ugly and a nightmare to maintain)
Imposter syndrome is not about being afraid you'll fail at something you haven't learned yet, it's about being afraid you'll fail at something you _do_ know, because you are not fully realizing or acknowledging the skills and experience you do have.
::sigh::........ Some of us experienced devs don't keep everything in our heads. We focus on what we need to know to get the job done. You, yourself, can no longer compute quaternions. If you needed them, you would. I look a megabytes of C code. Sometimes I *_don't_* know wtf I'm looking at... *AND I CODED IT.* I mean, just a few days ago I had to look up the syntax for creating nested unordered lists. Yeah, yeah, just embed a ul within an li. But for the mountain of sh!t that I have to remember, I was adult enough to say "I don't know," and "copy pasta" that sh!t. Judge me. IDGAF
Right? "if you dont know how to read / write a file without looking it up, you don't know your language" but with that logic, you don't know maths because you can no longer do quaternions. Deal with so much code that has not once included the file system in years. Why would i remember that? i write notes to remember what i did yesterday :D
Yup, a few weeks ago, I was like damn I haven't touched the node file system module in ages but have been working in the eco system a decade. For sure, I looked up accessFileSync and writeFileSync. It's not every day you need to gut a dev dependendency just for the stuff you want at runtime so you can save space without hardcoding any of it. The difference between a competent developer and an incompetent. The competent developer knows where to find the answers and read code examples and docs. The incompetent goes to Stackoverflow or asks an AI tool and believes their job is done.
16:40 As an idiot with a phd in physics, I can attest that you can still achieve anything you want with your 0.3 multiplier. But you will need to spend more hours. Either you have a good brain or you have a lot of time to spare.
4:23 You're after my own soul on this bit, because I didn't even have any classroom or community or textbook or anything grounding me out whenever I figured out recursion from my own mind, after a full day bashing my head against that first permutations problem on Project Euler. I had gone through a beginner programming textbook to learn my first coding language, and it said nothing about recursion. I sought no outside support because using anyone's solution besides your own is against the spirit of Project Euler & defeats the whole point of challenging yourself with it in the first place. I was putting loops within loops within loops, then I figured I should put a loop within a block and have a loop enter that block, then I had a block enter the block, the block entered itself, and that was my eureka moment. It ran super slowly, but I learned a new concept. Only after that did I learn that it was called recursion. Even if I wanted to use a search engine, I didn't have a search term to figure this thing out. But we got 'em.
Worst programmers I had the (dis)pleasure to work with were actual mathematicians turned Haskell programmers. Great scientists, but horrible engineers.
As a CS graduate from Cambridge, I feel attacked💀 Edit: It's a joke, I know I'm a good programmer. I worked as a software engineer before I pursued my degree at Cambridge.
@@PixelTrik I think the point is that there are bad programmers from all over (no guarantee to be great because of going to a certain university), _not_ that all programmers from certain universities etc are bad. I'm sure you'll be great and make many friends in the field :D
As someone who is on his last year of getting his BS in CS, with focus on software engineering, I fully agree on the degree take. Every class is just to build familiarity, but doesn't go far into one particular topic. I have spent so much excess time to dig deeper on languages, linux, your mom, and now my kinesis is on the way, and oh no I'm installing arch... HELP
There are people out there who think that learning stops at passing the class, and I don't think they are getting the most out of their education. I have a feeling these are the same people who go on to say that schooling is useless.
@@alexanderhorner Grades tend to be more important for graduate, law, or medical programs, as well as internships and entry-level positions immediatly after completing your degree. Later on, your work experience and CV are more important.
I am so very very glad that I have jumped around numerous diverse technologies and tools and languages and frameworks. That forces you to be stronger overall in understanding a new problem domain, AND considering multiple ways to solve a problem (and also to see horrible inefficiencies and code smells, that someone else just overlooks because they have The One True Way to do things, even if ugly and a nightmare to maintain)
Imposter Syndrome is a complex state of being. It only impacts highly conscientious people. It is a mix between anxiety and caring about performing at the right level. Imposter syndrome is as much a product of the work environment as it is of individual psychological characteristics. 70% of top performers have experienced imposter syndrome at some point.
No, the people who get the worst cases of imposter syndrome are the ones surrounded by other brilliant people, like the engineers at Google. It's being pushed to do even better because there are people who are better than you, and you need to grow more to get there, too.
Did I just get called out? I didn't have imposter syndrome. When I started, I realized that I didn't know much, and many people around me knew more, and I thought That's normal-they started before me, and some of them are even smarter. There is a long way ahead of me, and that's normal. I will work and improve myself, and I will reach some height one day.
@@ComputersAndLife TL;DR: I agree with OP that highly conscientious people are likely to feel Imposter Syndrome in this field. Nah, that's not what Imposter Syndrome is. What OP said is much more accurate though I disagree that it only affects high conscientious people. Neuroticism is the tendency to feel anxiety, self-doubt, etc. I'm starting to suspect that people are confusing Neuroticism with Narcissism in this channel because Prime equated Neuroticism with "thinking too much about yourself". I certainly did until I further researched after posting and realized my misconception. I've been programming as a hobby for over a decade and have always felt I wasn't skilled enough to land a programming job. Then I hear from friends in the field who tell me my competence is greater than some of their colleagues. I don't have years of continuous use of a specific technology, I have over a decade of experience trying every technology I can and learning the patterns/techniques that persist regardless of your stack and exist because of it. Yet, every time I look at job postings I feel massively underqualified. Personally I think this is because company expectations have led to the accumulation of ignorant newbies to specialize pre-hiring leading to underdeveloped engineers. If companies took on more generalists, I'd imagine it would have a higher chance of bringing in innovation. At the same time, a generalist is more likely to bounce to a new opportunity if they don't feel like specializing.
it is so beautiful when senior have balls to say "I don't know", because mostly we only think we remember correctly. please, stop celebrating self-confident incompetence.
Who gives AF how well you know a language by heart? Focus on solving the problem at hand. Whatever it takes. The person who can accomplish that is the person I'd likely hire.
@@TheSuperappelflap If you're actually programming in a given language on the regular, doesn't memorizing syntax just... happen? Like. Sure, you look something up the first time. Maybe the first couple of times. Maybe every time if it's something that just barely comes up. But the things that you need all the time, I would expect that you'd memorize them whether you want to or not.
I really enjoy that you're selling the idea of CSS being too complicated to understand in a video about having confidence that technology is not too complicated to understand
What I'm unsure of though, is whether there's actual depth in programming available to most people? A lot of jobs these days revolve around creating a product, and the most important thing is churning out a lot of shallow code (CRUD APIs + A bit of logic + a bit of UI on top), and ship the product / a new feature. None of this requires any level of in-depth knowledge. I've been employed for 10+ years and I believe I'm at the point where I could jump into any codebase, and be able to do something with it. What additional level of depth is there, besides: - Some Open Source project - Some inhouse project at a FAANG company? Majority of the companies are not solving novel problems, that would require any depth of knowledge.
It is somehow in a weird way like digital plumbing. I feel like real novelty is found in a passion project somewhere either privately or something nice that people want.
Well, I get what you're saying, but when it comes to performance optimization or even some bug investigations, some level of depth is required or at least helpful. I was for example working on optimizing performance of database queries, as I saw/thought that we had a lot of potential for improvement there, and that required getting to know more in-depth things on how MySQL works for certain queries and working with or around the MySQL query optimizer. It paid off, I think I got every query (at least the "realtime" ones) to single-digit timing, most to
TLWR: Fear got replaced by love and hunger. Long version: Motion designer learning gamedev here. I started programming 2023 January in Unity C# as a new year resolution and until recently I was crippled by the fear that I'd never truly understand it. This year someone asked me what I do for a living and I blurted out "Design by day, games by night", tongue in cheek at first but it was then I realized: I LOVE PROGRAMMING. After one slow and painful year of botched projects, unfinished game jams, sketches etc -I can slowly dip my toes in topics like loose coupling, FSM, generic classes etc. I had no idea that IT IS ACTUALLY FUN. I realize I truly know very, very little but the difference is that fear got replaced with hunger. If you read this far, thank you ^_^
As I near the end of my CS degree, the midwit statement is so damn true. All the courses while helpful and at points high level, felt like introduction to a subject and topic. They never go truly in-depth in any specific subject because CS is as wide as the ocean in topics to know and learn. My greatest and most confident work was all from "extra" learning or research outside of the curriculum.
With traditional engineering, at least, you tend to get 1-3 lectures on a subfield created one by one of the best historical talents over their lifetime. There's a lot more to cover, but you can't truly cover topics in-depth until grad school.
That's how it goes with DHH. The first thing you read or hear about him will make you disagree vehemently with him. With time, you could find yourself becoming a fan. He's not afraid to question the common ideas and practices. You'll like a lot of what he says. Even the things I disagree with him about, I still agree and see a point in his reasoning for it.
The longer you are in the craft the more you tend to disagree with Uncle Bob. I think his ideas are a decent starting point for inexperienced devs, but later on you realize that there are more shades between white and black. ;)
Imposter syndrome's sometimes unintended side effect is instilling grit into people with high natural talent, creating somewhat broken but highly exceptional coders. Coding has always come very naturally to me, but thinking it's never good enough or I've never "made it" in the industry has helped me build the grit necessary to push through.
I’m a self taught programmer who spent time intentionally improving my craft, however I also happen to be far into a PhD in theoretical computer science which is not at all about practical programming but more about proving mathematical results about theoretical computers. What I have seen after working at big tech companies for a few summers through my PhD is there are great programmers but being a great programmer is only one part of the story, you also need to be a great problem solver and I have found many software engineers don’t have as strong problem solving skills as someone with a cs theory or math background (for example). In practice this implies that the good programmer might put together a sensible solution to a problem with the proper coding style and seemingly full unit tests, etc. but the issue in their work may start with the high level solution to the problem itself being flawed. This isn’t always the case of course, some problems are simple enough that they get a right solution for from the start; however, there can be tough problems in the real world that lead to such a situation. For example, they and their software engineering colleagues may be unable to see that there exist a class of carefully crafted bad inputs that could break their algorithm so they don’t catch a flawed implementation at review time. Additionally, they may fail to see their problem is similar to another well known problems that they could reduce to and have a more bulletproof/optimal result. This is where good training in computer science can honestly be so useful. So at the end of the day, being able to write nice code is important and is its own craft but being able to perfectly solve a hard problem is another skill and there are many programmers I’ve met who fuck up in this regard even if they can make perfect looking code.
"Our profession is the world's greatest RPG" - Prime I couldn't agree more. I wish more people would see that. I'm a physicist/bioengineer/CS frankenstein scientist. It just keeps getting more fun.
How is it that the Tech Lead, who is always on-call and putting out fires, gets promoted, but my team has a 100% deployment rate, 0 bugs in the last 12 months, and 0 turnovers? The other guy gets the promo because I was told 'Tim' had to deal with prod issues, bugs, and high turnover? Have you idiots ever thought that 'Tim' was part of the problem, he's not a problem solver, he's a problem starter. I should just suck at my job so leaders can see me struggle to just get promoted. JFC!!!
Yes, my coworker got a promotion because he extinguished the fires he started. I spent my days easy, to focus on code that has no bugs, so fires don't start in the first place.
It eill never soundd as good as the manager remembering Tim solving production hell at 2 AM, even if Tim caused all that. Not suggesting you should do what Tim does... but i had a colleague that was doing something like that intentionally and being proud for bring recurenr work/ clients to the company. In my opinion he was lucky his clients didn't ask for second opinion or were to trustfull... But that is a diff story :))
For promotions your performance is not relevant, what is relevant is that you do stuff to stand out to mgmt. This is why asskissing exists. They probably dont even remember your name. But they remember Tim. Hes quite the character.
Sucking at something is the first step at being good in something, HOWEVER many many people just plain expect other people to be good straight away. This leads to the problem described in this video.
1:21 The senior shouldn't be saying "I don't know how this works either." The acceptable version of this story is that the senior may also have to look up the syntax. The difference is the junior has to rummage through the tool box, searching for something that will work. The senior should understand at least to a very large extent the tools available, which might be useful in the current situation, and the benefits and drawbacks of various available approaches.
Yeah the senior may be fuzzy on the specifics but they should either know how to research to develop an answer or have an outline in their head. They should also have confidence from previous projects that it's a process and just takes time.
When I was in uni, for about 2 years I had a friends group where everyone had that "I just wanna pass" attitude, and I felt super comfortable. Later, I got into a different friend's group where our team lead was insanely productive and proactive, getting only top grades everywhere and participating in absolutely everything. Our entire class was full of enthusiastic people who wanted to build good games, our prof even noted that our class is the most ambitious and hard-working she'd seen in her 10 years working. These last 2 years were the most fun, productive and inspiring moments of my life. I was building cool smart things I'd think I never could, our project was picked and displayed on a cool tech event for thousands of people.
The way i always read the meme is it was more about attaining the skills and enough knowledge to be able to work on things withought knowing that specific thing. like as a senior i get assigned fucking crazy random shit all the time and i don't know it specifically but either i have enough adjacent knowledge to solve it or know how to find the solution to it very fast.
I loved the last part, reminded me of another related quote by Jim Rohn ”learn to work harder on yourself than you do on your job”. Applies to programmers too
I don’t think working on a project just to get a job is wrong if once you get the job it allows you to work on developing your skills for longer periods of time, most of us need a job and can’t wait until we are masters before we start earning a living
I don't think he was knocking the idea of working on projects to improve. His point was that getting good is a much bigger process than just completing a project.
I was constantly looking for a path to become a proggamer, but after seeing this video I came to understand that I need to learn how to be a really good programmer, not in order to get a job, but to make a whole carrer on it. Great message!
The incompetence here is thinking this is anything new. I was in the industry for 25 years. There has always been a fairly high percentage of people who just do not know what they are doing. My assumption is that this applies to every industry.
Going through an incredibly hard time since getting laid off 6 months ago. I’ve been cranking on side projects and leetcode to stay fresh, learning C# and Python by writing servers from scratch, and yet no success in the job hunt. somehow, I find some hope listening to these rants. Of course I have doubts, sometimes I need a reminder that I can learn anything under the sun.
6:00 The only advantage of prestigious universities is the connections and networking that you do. That is very useful for some careers, and irrelevant for others. Currently, I work on the daily with people with MIT, Princeton, CalTech, etc degrees and phds, and I did my degree in a small university of a small Spanish city. Physics is the same in Spain than in the US. There are no secret formulas that are only taught to MIT undergrads (at least not that I have seen, maybe they are that secret). The main difference is that they have north of 100k in student debt and I am 100% debt free. I keep trying to explain why the exorbitant prices of Ivy League and other top tier universities are stupid and unjustifiable, but the prestige is too much. If you are in MBA, law school, or even medical school, then it could be justifiable, as networking in those fields is fundamental, and sharing a lecture hall of that son of that billionaire, or that daughter of that oil tycoon, will make a huge difference. And for medical school, being able to do your residence i this prestigious hospital instead of in a rural hospital, for example (I don't know how residence selection works in the US with private hospitals and private universities. In Spain there is an exam, every prospect gets a score, and the highest scores start to choose their place of residence, and down the line, until there are no more places).
Wow! Can you believe that?! You seem to be saying that in this world SOME people might actually be BETTER AT DOING SOMETHING than OTHERS. Well, in physical science, such as biology, paleontology, climate science, physics, immunology, vaccines PROVING WHAT IS OR WHAT HAPPENED IN THE PAST ****IS**** DOING. The job is NOT how to fix things or how to apply things. That is what engineers do. Or medical doctors. In Mathematics, PROVING A THEOREM, PROVING WHAT IS, *****IS**** DOING. So, yes -- some people -- LIKE CLIMATE SCIENTISTS -- actually DO KNOW MORE about the effects of burning fossil fuels on earth's temperature and climate THAN THE BILLIONS OF BIASED LAZY ASSHOLES WHO ARE COMPLETELY BIASED TOWARDS IGNORING AGW AND REFUSING TO MODIFY THEIR COMFORTABLE LIFESTYLES TO REDUCE THE PAIN & SUFFERING & TRAGEDY OF HOMELESSNESS & POVERTY IN THE FUTURE FOR YOUNG PEOPLE WHEN THEIR HOUSES GET DESTROYED BY INCREASED TORNADOES AND HURRICANES. Some people -- LIKE VACCINE MANUFACTURERS -- actually DO know more about the benefits and risks of vaccines and their drugs through MASSIVE scientific testing -- than lunatic political cranks like Alex Jones or RFK Jr. If arrogant shitheads think they are allowed to be contrarians to climate scientists, evolutionary biologists, physicists then I get to be contrarian to police officers, to judges, to prosecutors about the law, I get to be contrarian to musicians & actors & screenwriters & dancers and proclaim *I* know more about tv making and moviemaking than Tom Cruise or Steven Spielberg. I get to be contrarian to Bill Gates about programming: I know more about programming than Bill Gates.
The Ivy league schools do tend to have some interesting professors, meaning that you can get to work on some fun projects on your BA/MA/PhD projects. But that is very field dependant, and European free universities also have great PIs
@@gnack420 I mean it. I was fighting with imposter syndrome for years. Especially when I got shifted from coding to project management. I wish I knew a good way to deal with it back then.
Re: the memes about Jr. and Sr. developers not understanding the same code, I always took those memes to mean that they don't understand it for different reasons. The Jr. doesn't have the experience to break it down because it's too complicated. The Sr. doesn't understand it because it's a complex part of a legacy system that was written by somebody who left the company 5 years ago.
when ever some one says "don't celebrate incompetence" it usually means the person has a ginormous ego. I've worked in consulting for for over 15 years and contribute to apache since 2002. You can understand enough to be productive, but to understand the entire thing for a large system is basically impossible. Does anyone understand every part of Hadoop? I gonna say "no, that's not possible." the original implementation based on GFS and Bigtable looks nothing like current hadoop.
The difference between the senior "i don't understand" and the junior "i don't understand" is that the senior knows they are eventually going to figure it out.
The problem here is that for most industry jobs, you know how to program, you know exactly what you want to do, and you know talented people have already made tooling that will help you achieve it. The job then becomes utilizing the tool to achieve what you want instead of utilizing your "programming" knowledge, which is more often than not a bunch of reading documentation and googling errors. Most problems can't be solved by your coding knowledge alone, so you're basically always in a constant state of "Idk exactly what's going on but I'm figuring it out"
I'm a junior and my senior will not only ask me what stuff does but make me prove to him why I know that using the code. "What does this do? Are you sure? How do you know?" And that mentality alone has taught me so much.
As a self taught programmer i can affirm its a pretty simple reason. Almost all of us self taught people were midwits who got lucky and got a job, then we realized how real it was when we saw an expert flying through an issue that would take us hours. Then we panic, get anxiety, spend years trying to catch up. Now that we caught up we feel like its all just faking it even when its not because thats how we survived the first couple years of working.
I feel it's kinda the same with uni, at least for me. Like, in high (or even middle) school you write stuff mostly out of fun, maybe even publish it somewhere and people do like it, and you feel like "yeah, I definitely know something about X". And then you enroll, and suddenly there are now lots of new concepts you struggle to understand at first (if ever!) and lots of new people about your age casually saying like "oh, I have 2 years of job experience in X, I also worked with Y and Z in my free time, and learning W as a hobby"... and you understand how awfully do you actually suck.
I majorly suffered from gifted kid syndrome for a long time. Totally screwed up my life for 5-10 years. After getting back on track and squandering the advantage, I enjoy the hard work/grit.
I think there’s a difference between “knowing the language” and “knowing the standard library”. You can be amazing at mathematics, and not memorise every trigonometry formula. “How to read a file” in a language can depend on the OS or the runtime. At least that’s what I tell myself to cope with the fact that I don’t think I could read a file in JS without the LSP…
When I say that I don't know how it works either isn't because I can't understand how, it's because I don't remember, and I'd have to take some time outside the meeting and look at it.
My biggest peeve is hearing "we can't make that feature because its not supported" from one of the juniors who hasnt even looked beyond our provided ui library. Never forget that yoy can do literally ANYTHING in software. It should always be a question of how lomg will it take.
I've had this experience in the exact reverse. I guess this depends on the shrewdness of the company, but as a junior, I would usually get a demand for a new UI element, a special way to trigger some action, or to implement a feature, that fundamentally goes against how the process was designed. And I would always just yesman it, saying that given enough time anything can be done with software after all. In my experience, following such demands leads to horrible mess of a codebase though. A senior should know when to counter the management and come up with ideas that are realistic for the codebase. In the end this saves sanity for the programmer and money for the management. A win-win.
@@niamhleeson3522 I always found this "moronic" when I studied CS in uni. Yes, the halting problem is undecidable. But only on the assumption you have infinite memory. That's not exactly a realistic scenario. The halting problem can actually be decided if we just start considering actual real life finite implementations.
@@JanVerny It's **intractable** even for tiny amounts of memory, 1KB of RAM can be in ~10^2466 different states, you can't just enumerate them all. The halting problem can't be solved in theory *nor in practice.*
@@JanVerny oh for sure there is a balance to it. My problem is more so giving an uninformed no. I have had a lot of junior developers say something is impossible, only because our main UI library doesn't support it easily. We write the UI library, so if change is necessary then its something that should at least be explored. In cases like that I think its always better to say "We will have to do some research and get back to you on that". In the same vein, an uninformed yes can cause issues like you mentioned! Sometimes its really good to say "No, we shouldn't add a button there because the UI guidelines say its not a great experience. But hey it sounds like this is what you are really looking to do, maybe we can achieve it this other way". Great call out :) Thanks!
One man single standing ovation included!!! The senior's "I don't know" does not mean the same as a junior's "I don't know" -- sometimes it means: I don't care.
I had a bit of an imposter syndrome when I finished my bachelors degree and was working, however I noticed, that while I was not as good as senior programmers, I was asked by them about other topics. I then noticed: I might not be as good as some others in all topics but I know a lot and I am not wrong in place at my work.
@@DevranUenal I tried LSPs very recently for Python (with all the bells and whistles, like autocompletion, etc) and I actually got rid of them very soon, because there are four types of situations, in my experience: - The LSP does not work. - You remember the name of the function, but you do not remember the exact detail of an argument, so you have to look for it on the documentation anyway. - You do not remember the name of the function, in which case the LSP is also not going to help you (I mean, it could, if you want to shift over 100s of possibilities sometimes, instead of just Googling what "That function that does this python", which works 95% of the times). - You know the name of the function, you remember all the details, and the LSP randomly forces its help onto you (e.g., you have autocompletion activated and you clicked Enter for a new line without clicking Esc first), and now you spend more time deleting the snippet than just typing the actual name. Since most of my cases are the last one, I found LSPs just incredibly annoying.
25 years of programming here, didn’t have any kind of code completing IDE until six years ago, and Copilot came shortly after that. When you have to write your code rather than ‘dot’ or ‘tab’ your way through IntelliSense dropdowns, you learn it differently.
I actually had to look up what that is, for some (to me) unknown reason I don't like IDEs and I hate autocomplete (unless it's manually triggered). Sometimes I fall into imposter syndrome but then I remind myself that huge companies like Amazon, Blizzard or Ubisoft asked me how I did a thing because they wanted it too (and I think Blizzard still uses my "hack" to this day)
Imposter syndrome is the fear of saying “I don’t know”. I was lecturing a class and a student asked a question. I replied offhand “I don’t know”. The class was stunned and the student almost yelled “you are the teacher!” I grinned and said “I wake up ignorant and reduce that ignorance every day. Let me show you how to do that and we’ll find out together.”
@@thomas.thomas It was my first semester teaching after 26 years in various sectors. Don’t recall clapping but my Iota360 student review came back and my dean said “whatever you’re doing keep doing it”. That was eight years ago.
I've been stuck in my current SWE job for the past 3 years doing mostly the same every day. Every time I hear him saying we can aim for something bigger, I feel a fire rekindling inside me that I don't feel since I was a child. God, I need to move forward.
I was in a rut for three years also, tried a few side projects in bwtn, but the job was always the same. I got fired has been a few months, never felt better, doing some freelance and studying a lot more. Don't let any company kill your passion for programming. GL!
Saw a post on reddit where someone complained about C# double IsNormal, that it's unclear what it does and Microsoft should do a better job. A lot of people agreeed and the one guy who called OP out for not knowing the basics about programming has been called mean and has been downvoted lol
What is Microsoft supposed to do about it? Put "Go read the wiki article on subnormal numbers in the IEEE 754 floating point specification. It's really interesting." in the mouse hover tooltip? Well, that would encourage to learn, so maybe the answer is yes, they should do that.
As a developer I'm more than willing to admit when I don't know something, but I'm also more than willing, and able, to go figure shit out. I think that's the most important skill in this profession.
I feel like developers saying "I don't know wtf I am doing" basically means: "I don't know the 'correct' way of handling this issue, so I'll need to figure it out as I go" The difference between junior and senior would be that junior may be stuck at that point, but senior will know what will be the next steps in approaching the problem Which is like, totally normal in software development If you are only working on problems that were already solved, why the fuck would anyone pay you any money, instead of using some random opensource thing?
In an ideal world, a junior would be subject to taking paths that wont make it to the final product while a senior dev would be the one paralyzed until the right path was revealed... but in practice its exactly the opposite
I get distracted too easily and i know this is a real problem, but even when coding not as focused as i wanted to be, i still deliver code and projects in time
Ok, time for bold takes: If you think Tailwind is great, you're not a good frontend dev. If you think AI will steal your job, your're not a good dev at all.
Tailwind is great, but specifically for react, where components are reusable, so your styling is too. Separation of concerns with CSS and HTML sounds great in theory, but in practice it's just unnecessary abstraction a lot of the time. Much easier to have each component's styling be clearly readable, clearly defined, and "in-line" with the rest of the code. CSS being separated is a bit of a holdover from the past imo, where you'd have a website composed of three files: your HTML, CSS, and JS. Nowadays, with the functionality being so tied to the structure and style, it makes more sense to have it all available together in the one file.
i've been working for 15 years as a software engineer, got plenty of promotions, I still get imposter syndrome from time to time, despite everybody telling me I'm awesome at my job. It comes with the territory, the more you know, the more you notice how little you know. By the way, I dropped out of a master degree program… I already had a job and after that I got my dream job!
"DHH" is cartoon level ego - he's just as funny and self-unaware as a 3 dollar bill - and his posts are worth about as much too. This one's some kind of weird mix of rage and humble bragging about how far (he thinks) he's come and he's sick of all the plebs - but hey, don't worry... you too can be as good as me some day too! Just don't use the internet, and be sure to make other people think you're "the shit" even when you don't know the first thing about a subject because there's nothing worse than admitting you don't know something!
I think I got grit by doing athletic things I wasn't talented in and trying really hard. Then i came back and applied that grit to math and programming.
I'm lazy too so I just copy the git clone lazyvim from their install step and launch nvim and select my language plugin. Most stuff with neovim might as well be magic as far as I'm concerned and I'm fine with that
I was always under the impression that being a good programmer/software engineer came down to having good discernment of a problem knowing how to solve it, using advanced and efficient techniques. Not necessarily knowing a language deeply and its tooling to not make you look up how to do certain stuff with that language on the internet. I don't think looking up stuff makes you a bad developer. What about documentation? What about language features, considering you can't memorize all of them? What about a design pattern you've never used, but you know can help? What about general research? Does looking up all that stuff on the internet make you a bad developer?
Exactly. This is 2024, not 1990. People like ThePrimeTime need to realize that it's possible to solve problems without only using your intuition and memory. If I want to solve a problem faster and also learn from it, I use Google or look up documentation. I understand that developers need to write quality code and understand how it works, but that doesn't mean they shouldn't use Google or the Docs.
For the challenge of reading in a file and counting the numbers I might actually be able to do that in C or C++ even though I don't consider either of those my top language but I did so many things like that in school it's burned into my mind at this point.
I stopped joking about being incompetent when someone didn't realize I was joking.
Most people pretend to know you're joking but actually take it to heart.
@@t-spark I think that he thinks that I also think that he is joking ..
A month after reading chapters 1-4 of Clean Code, I had to stop visiting the programmer humor subreddit because the memes about spaghetti code were upsetting
@@Daniel_WR_Hart Programmer Humor is just a bunch of CS minors like "They told you C is low lever, but have you heard about ASSEMBLER?"
@@Daniel_WR_HartI stopped visiting that subreddit after two of the most upvoted posts on a random day were about typos.
I’ve been.a senior engineer and mentor for over 20 years and I will still say “Neither do I, but lets figure it out” As I feel like that is the most honest statement that is also the most inspiring.
The ability to convey one’s lack of knowledge and at the same time confidence that said mentee is in good company it’s a tough balance. But I do agree, being honest with one self and each other is the better form of team work.
Yeah. There's a major difference between not knowing what your doing, and not knowing what the code is doing. Especially legacy systems you inherited.
@@rafaelrocha3991 the idea is to show the juniors that seniors aren’t some special all knowing beings with unattainable abilities. So sitting down with them and teaching them how to understand the code, to allow them to see a senior problem solve just like them. That is how you alleviate imposter syndrome.
Even if I know the code base beforehand I pretend not to so we analyse together.
That's the right answer. You're not going to remember every batch of code you wrote/worked with and most of the times you'll need to "get back to it". Back to the "zone" you were at the time your created/worked it.
This guy gets it.... lmao.
Prime is right about knowing your language, but one reason why this is a common issue is that people have to learn insane amounts of meaningless garbage api or framework semantics or any number of things stacked on top of the actual language. And the worst part is knowing that stuff grants you no deep knowledge, but sucks away your time and energy.
Prime wouldn't know. He wants to write his CRUDs and tower defense games in vanilla while casually dropping the sheds of wisdom on show React's state flow is not unidirectional because it has to ping the server at some point.
"Waterfall does not fall from top to bottom, because technically the water evaporates and it's, like, a circle" - Primeagen, anno 2069.
Exactly. I have to know 3 frameworks, 6 languages, everything aws, Linux on Linux, servers/networking, etc etc. I wanted to master the 2 languages I use the most, but I feel like there’s no time when you have this massive amount of things to maintain and create.
@@Reeg3xthat is the proper mentality, programming languages are essentially just the tools we use to write rules for computers to understand, because pure machine code is unintelligible to us, attempting to “complete” the language at such a level wouldn’t achieve much for your work. Just learn the best tools for the job in the most general way, anything beyond that really comes down to what you are trying to accomplish.
no, no you don't. you learn your algorithmical logics and you look up frameworks constantly afterwards. don't trash your head with something which is easier to look up than something which is easier to understand. anything which you use all the time - you'll remember eventually.
100 % AGREE
The bad programmers think they`re good, the avragave programers think they're bad, the good programers think they're avrage
No. The bad programmers think they are good, the average programmers know they are bad and the good programmers know they are good (but also over estimate other peoples competence/ knowledge).
Standard Dunning-Kruger observations.
Good programmers create good times, good times create bad programmers :)
Only boomers say stuff like this
The good programmers don't think about it, cuz they're too busy writing code
There’s this obsession with oversimplifying and speaking in generalities. A ton of decent programmers think they’re better than they actually are. I surmise that would be most of the people here (maybe myself too!)
A good software engineer is one who, when faced with stuff he doesn't know can confidently say "I don't know what this is and how it works but I can figure that part out if you give me the time". nothing more and nothing less
that's what i tell people when i try to repair stuff
@@clementpoon120that’s what I tell people when flying the airplane
same here
@@solarydays hr doesnt have the final say, they are just a barrier before hiring managers
@@solarydays you haven't been an interview loop so let me explain. hiring manager is the person you will be reporting to when you get hired. they are mostly engineering managers, they do technical interviews and make the final decision on whether you get hired or not. hr on the other hand, skims through cvs to see if you have the related experience and put you in the loop and handle all the proccess as a support function. they don't get to decide whether you pass the loop or not, thats for your prospective manager and other engineers that interview you to decide. only behavioural interviews which are meant to see if you are capable of social interactions and cultural fit. other than that, hr just supports the logistics and legal paperwork of the loop.
The real meme is probably:
Junior: **looks at 1+1** I can't understand it
Senior: **looks at a multimillion line long legacy codebase** I can't either
Now with ChatGPT they most likely can (legacy codebases)
no, its not.
its more like:
Senior: I need 6 months to understand this multimillion line long legacy codebase.
@@OstapBrehin Correction: with ChatGPT, they think they do.
Tried chucking legacy code into ChatGPT. It didn't understand much.
react mentioned
Never care about difficulty, just go in. Fail? Understand why, try again. Win? Great, next.
That's the way engineering works. Unfortunately not really the way that managers think it works.
Imagine making a runscape bot. Thats all that is dude.
This is the whole thing. Im not smarter or more competent than most of my problems, but I am more stubborn than all of them combined.
I had a mentor who once told me that "You can be smart, or work hard." He did both and won the Nobel Prize.
And that man's name was Albert Einstein
@@sczoot6285 Wrong, it's will smith
@@juliancorredor1128👋🏽💥 Keep my wife's source code out of your repository!
@@juliancorredor1128 eating spaghetti
@@aheendwhz1 slapping shit
"you can learn something because you've already learnt recursion" - that's some kind of recursion in and of itself
It is almost poetic in a way
I am a self taught programmer, well over 25 years ago i taught myself to do it. I gained the ability and motivation to train myself serving in two branches of the military. What you should be learning in school is how to train yourself. If you cannot self train, programming will never be your field.
That’s probably the best I read in a long time.
100% agree
The best programmera Ive met were the teenagers coding their amigas in as. Coming up with optimization and tricks to do cool 3d effects in the 80ies. Them you meet the university software people, and they hardly know Java.
Though this is true, I still believe the hiring system is all messed up. Basically we can train ourselves through self study and programing its that easy but it does help alot to have a mentor. I feel most mentors will be a classmate but never someone at work because unless you train yourself , it seems you wont get a job. A few exceptions like SkillStorm will train people but it will cost your freedom for a few years.
@@computernerd8157 I agree completely.
I agree 💯, self teaching myself has been far more rewarding
This hit me hard. I literally had a “lead” who was imposed upon me years ago who had no idea what he was doing. When he decided to invalidate all of the work the rest of our team had done by switching frameworks over the weekend, I asked him why he did this. His answer was, “I went to Rose-Hulman and you just went to IU.”
I quit two weeks later.
So he won?
@@deleted01no. He quit 4 days after I did. Only he did it without notice. Because he went to Rose-Holman and whatnot.
I'd never heard of Rose Hulman until my state school whipped their ass in solar car racing back in the day. Some people... And good for you!
People who cite their education as any form of superiority are insufferable.
"it you need to say that you're the king, then your not the king" - someone from Game of Thrones😂
I noticed something else you said; you said "after 15 years" in reference to not being able to do quaternions. This is another thing early stage programmers need to get used to is, unless you continuously do something, you will forget that thing. Programming isn't like riding a bike, it's something you must keep on top of
I feel like you've also got problems if you don't stay on top of your bike while riding it
Its literally like speaking another language, if you don't practice you will lose it.
In my opinion, I find it easier to not try and keep on top of obscure things that are well traversed. I can just quickly re-learn it when I rarely come across it.
So with the bike analogy, I wouldn't constantly practice riding a bike, because when I very rarely, if ever, need to ride the bike, it will only take me an hour to learn (even less to relearn).
I dont know about this, ive been trying to unlearn php for over 10 years and i still havent gotten it out of my head
Impostor syndrome: not that I cannot learn stuff. But I find myself in the middle of my work project, overwhelmed by realizing of how much I don't know / didn't learn yet / tried and it turned out bad / seen other people doing it a lot better, yet I'm getting money for this. And not that I cannot learn, but it's just too much and I'm exhausted, let alone I don't want to learn all of it because tomorrow it'll be replaced because this framework will be cancelled and replaced by shiny new thing / I can just Google or ask AI next time I need it / there is no single right answer on whether this architecture is good / I just wanna go to sleep.
ya and company would just focus too much on current problem, and u get obsolete more quickly. Later or now, we have lack of job now.....
Probably we need some AI basic wage now, not for whole world but is transparent and for people to online with logging through internet and interact with other people in different scenario: gaming, learning, sharing. Those whose live in poor countries, they registered by government list instead, and whole AI basic wage should pass to take care ppl life if they cant afford online.....(soft skill or intellectual skill nowaday- like online companion and sharing knowledge)
I think your view is a bit too pessimistic and you need to contain your thoughts. Focus on your task at hand do what must be done to finish it. Then start on the next. Things are not replaced that fast and the knowledge u get has some carry over between frameworks and languages.
No there are no true answers but with time it will be easier to evaluate pros and cons.in the meantime hopefully u work with some seniors that have architecture responsibility
Early in my career, my manager asked me why I preferred this programming language over that other one. And he followed it up with "all you do is move data around".
This stuck with me, for a different reason than what he meant. When you view everything as reproducible logical data flows (I'm not a fp bro I promise), then not understanding something simply means, you start at the part you do understand and walk (back) from there - one step at a time.
There's no magic, no fear or fomo, understand there are things you don't know, that that's okay, and that those can be learned just like everything else you learned thus far.
A good manager! Because I generally don't care about what language is used -- sure I have preferences but ultimately most of IT is truly about solving trivial problems. I always chuckle when colleagues in ETL data processing say: "this is hard!" I think back to when I started and had to create hardware to actually test my code for correctness in medical equipment. That was so much harder than ETL will ever be. And that was even an entry level job designing and building simple insuline pumps. That you got to do at least for 3 years before moving to mid level more dangerous medical equipment.
> ...then not understanding something simply means, you start at the part you do understand and walk (back) from there - one step at a time.
Oh that is good! I need to take that to heart, as it's something that applies in other areas of life too!
Likewise, a good friend of mine said to me once, many years ago: "all commercial / business applications are essentially database projects". From that point on, as soon as I tackled a certain level of SQL competency, I was just like "ok, in this situation we communicate with the database like this, in the other like that..." and so on. It was just a "pick your own adventure" after that point (always taking into account the needs of the job at hand).
@@PhilipAlexanderHassialis this is why I’m fed up with IT! I’ve been doing since 1989 part time and full fine since 1993 and it’s the sane shit just different OS and language and there are no quantum leaps in software. It’s just more and slower abstraction. I guess this is why I still make a lot of videos on (C64) assembly. That’s the only interest thing for me, to do things on tiny machines.
Probably most of this is due to certain jobs where you just touch a lot of stuff rapidly without ever having time to really learn something
"Is 'sex' a new JS framework?" I laughed hard at that.
[Arch users have left the chat (apparently)]
Incompetence mentioned 🎉
Press 1 in the chat if you're incompetent :P
@@drpolishmatt I pressed 1. Now what?
@@liminal_spaces_on_earth now kiss
@@liminal_spaces_on_earthGet good
(Not in a mock way, but a serious way. I also need to get good, hope to see you along the way)
DHH and incompetence mentioned in the same sentence 🎉
Try using positive reinforcement to Junior Devs, though. Not everyone can handle being told “you suck. Do better.”. It may motivate and inspire others, but not everyone does.
0:28 in an alternate universe he is still clapping until the day programmers stop celebrating incompetence.
😂
Needs to release the raw green screen footage of him giving a standing O
@@almandot We need this one ASAP
I need that video cut to last 24 hours
I am constantly learning new stuff and from this point of view I am a constant learner of even newb - except having decades of experience in SD. And I confess: what I learned 6 days ago, I already forgot the nitty gritty and I have to look it up again. What's important though is to be able to ask the right questions. If you don't, you won't get the right answers.
Conclusion: Look up stuff as many times as you want without shame or guilt but make sure you're knowledgeable enough to be able to ask the right questions.
People too often feel bad because they compare their abilities to someone who is better and think the gap is due to lack of intelligence or talent.
Usually what they lack is knowledge and experience. And that can be acquired by almost anyone. It just takes time and effort.
The way to combat impostor syndrome is not by collectively throwing our hands in the air and saying "shit's too hard even for the best of us, so don't worry too much".
No, the solution is to flip the script and use it as motivation. To say "while you may not be that good yet, you can and will be, but only if you're willing to put in the effort".
The only true impostors are the ones that give up trying to improve and just coast.
I made my free programming course on my channel for these people
I made my free programming course on my channel for these people
Idk if it is the same take or different.
More like don't copy what others do,
Learn from what others did?
I just tell juniors that the only difference between junior and senior is how many mistakes they have made to learn from.
This is the correct take imo.
Feelings of inadequacy don't just manifest out of thin air, they're born from comparison to (perceived) peers of (perceived) higher competency/skill.
But impostor syndrome is a framing mistake. If you're working in a technical field and have colleagues who are "more competent" than you then you aren't an impostor, you're a learner in luck.
Don't look to others for determining your placement in the "competency hierarchy", but for guidance on how and what to learn in order to improve.
You may think "I'll never be as good as my colleague Amanda". That may or may not be true, but it's hardly relevant: you _can_ get better at what you do and as long as you're improving, you're doing just fine.
Knowledge is less like a bank account, where all that matters is how much you have, and more like a lake. You'll be able to tackle more problems more easily if you have a higher volume of water, but what's really important is the shape: what are the places where your knowledge is deep enough to be useful?
Don't think "I wish I was as good as Tim", think "damn, Tim sure is good at writing performant database queries, I'll ask him what I could do to get better at that".
When someone is more proficient in something than you, don't assume they are inherently superior; assume instead that they cared enough about that skill to put in the time and effort to get good at it. And you can do that too.
In my opinion, in the field of software engineering you're only ever an impostor if you give up on getting better at what you do.
As a wise man said:
“Every joke is only partially a joke”
"behind very joke is a truth"
Including your mom jokes?
"ha ha only serious"
@@deleted01 The truth there is the reality about the person saying it, if you look into them you'd understand why they're making it.
Along a similar line, as an older developer (40+ years of programming), I find that there are a lot of "senior" or "tech lead" developers that don't actually understand how anything works outside of their library or frameworks of choice. Particularly when it comes to Security or Performance. If the framework doesn't do it, they instantly turn into a puddle of goo unable to solve the most basic issues, or make intelligent decisions.
Exactly why I prefer to write my own code based on the language, not some framework. I understand that someone proficient in a framework can probably create something much more quickly than I can, but when it comes to debugging, I can handle it much better.
Recently I encountered one.
Personally I am so very very glad that I have just around numerous diverse technologies and tools and languages and frameworks. It forces you to be stronger overall in understanding a new problem domain, AND considering multiple ways to solve a problem (and also to see horrible inefficiencies and code smells, that someone else just overlooks because they have The One True Way to do things, even if ugly and a nightmare to maintain)
Imposter syndrome is not about being afraid you'll fail at something you haven't learned yet, it's about being afraid you'll fail at something you _do_ know, because you are not fully realizing or acknowledging the skills and experience you do have.
::sigh::........ Some of us experienced devs don't keep everything in our heads. We focus on what we need to know to get the job done. You, yourself, can no longer compute quaternions. If you needed them, you would. I look a megabytes of C code. Sometimes I *_don't_* know wtf I'm looking at... *AND I CODED IT.* I mean, just a few days ago I had to look up the syntax for creating nested unordered lists. Yeah, yeah, just embed a ul within an li. But for the mountain of sh!t that I have to remember, I was adult enough to say "I don't know," and "copy pasta" that sh!t. Judge me. IDGAF
Right?
"if you dont know how to read / write a file without looking it up, you don't know your language"
but with that logic, you don't know maths because you can no longer do quaternions.
Deal with so much code that has not once included the file system in years. Why would i remember that?
i write notes to remember what i did yesterday :D
@@SambaJones97 That's fo damn sho! I've been coding in C for over 3 decades, so I've forgotten more than many have learned.
Yup, a few weeks ago, I was like damn I haven't touched the node file system module in ages but have been working in the eco system a decade. For sure, I looked up accessFileSync and writeFileSync. It's not every day you need to gut a dev dependendency just for the stuff you want at runtime so you can save space without hardcoding any of it. The difference between a competent developer and an incompetent. The competent developer knows where to find the answers and read code examples and docs. The incompetent goes to Stackoverflow or asks an AI tool and believes their job is done.
How much "experience"? You sound like a junior still..
@@-Jason-L I guess, at my age, I should take that as a compliment.
16:40 As an idiot with a phd in physics, I can attest that you can still achieve anything you want with your 0.3 multiplier. But you will need to spend more hours.
Either you have a good brain or you have a lot of time to spare.
So you need a good brain because nobody has time to spare
@@deleted01Sound accurate, nobody has time or desire to train in this feild. I figured to focusing on building my own things for money.
do you not understand how multiplication works?
Prime ALWAYS selects a text in full except the first and last letter. Now you can't unsee it
I've seen it from the first video I watched and it bothers me so much I wake up sweaty
Wth why does he do that?
You must be new here
I have seen so many videos, never noticed this. Why did do this to me?! 😂
Psychopath behaviour.
4:23 You're after my own soul on this bit, because I didn't even have any classroom or community or textbook or anything grounding me out whenever I figured out recursion from my own mind, after a full day bashing my head against that first permutations problem on Project Euler. I had gone through a beginner programming textbook to learn my first coding language, and it said nothing about recursion. I sought no outside support because using anyone's solution besides your own is against the spirit of Project Euler & defeats the whole point of challenging yourself with it in the first place.
I was putting loops within loops within loops, then I figured I should put a loop within a block and have a loop enter that block, then I had a block enter the block, the block entered itself, and that was my eureka moment. It ran super slowly, but I learned a new concept. Only after that did I learn that it was called recursion. Even if I wanted to use a search engine, I didn't have a search term to figure this thing out. But we got 'em.
Worst programmer I ever worked with had a CS degree from Cambridge...
Worst programmers I had the (dis)pleasure to work with were actual mathematicians turned Haskell programmers. Great scientists, but horrible engineers.
@@otak_ Haskell mentioned LETS GO
worst programmers are the ones who just hate their job but went in for the money
they have 0 desire to do things right or to learn
As a CS graduate from Cambridge, I feel attacked💀
Edit: It's a joke, I know I'm a good programmer. I worked as a software engineer before I pursued my degree at Cambridge.
@@PixelTrik I think the point is that there are bad programmers from all over (no guarantee to be great because of going to a certain university), _not_ that all programmers from certain universities etc are bad. I'm sure you'll be great and make many friends in the field :D
- I used to do it by hand.
- Do it.
- I can't.
As someone who is on his last year of getting his BS in CS, with focus on software engineering, I fully agree on the degree take. Every class is just to build familiarity, but doesn't go far into one particular topic. I have spent so much excess time to dig deeper on languages, linux, your mom, and now my kinesis is on the way, and oh no I'm installing arch... HELP
There are people out there who think that learning stops at passing the class, and I don't think they are getting the most out of their education. I have a feeling these are the same people who go on to say that schooling is useless.
*welcome to da club, buddy _CLAP_ * you're using Arch, btw 😎
The problem is grades are such a huge emphasis in getting a good first job that there is never any incentive to go beyond the curriculum.
@@scythazzI’ve never had anyone ask me for my grades
@@alexanderhorner Grades tend to be more important for graduate, law, or medical programs, as well as internships and entry-level positions immediatly after completing your degree. Later on, your work experience and CV are more important.
I like to tell juniors "I don't know how that works either, but we can go read it and find out".
Beautiful! Recognizing your limits, while still wanting to learn AND you convey this example of what a senior should/could be!
Absolutely beautiful!
Carl segan
That’s the real skill, Jnr: “I don’t know”; Snr: “I don’t know….but let’s find out.”
Mentioned mentioned
I am so very very glad that I have jumped around numerous diverse technologies and tools and languages and frameworks. That forces you to be stronger overall in understanding a new problem domain, AND considering multiple ways to solve a problem (and also to see horrible inefficiencies and code smells, that someone else just overlooks because they have The One True Way to do things, even if ugly and a nightmare to maintain)
Imposter Syndrome is a complex state of being.
It only impacts highly conscientious people. It is a mix between anxiety and caring about performing at the right level.
Imposter syndrome is as much a product of the work environment as it is of individual psychological characteristics.
70% of top performers have experienced imposter syndrome at some point.
I was under the impression imposter syndrome came from neurorotisim
No, the people who get the worst cases of imposter syndrome are the ones surrounded by other brilliant people, like the engineers at Google. It's being pushed to do even better because there are people who are better than you, and you need to grow more to get there, too.
Did I just get called out?
I didn't have imposter syndrome.
When I started, I realized that I didn't know much, and many people around me knew more, and I thought That's normal-they started before me, and some of them are even smarter. There is a long way ahead of me, and that's normal. I will work and improve myself, and I will reach some height one day.
@@ComputersAndLife TL;DR: I agree with OP that highly conscientious people are likely to feel Imposter Syndrome in this field.
Nah, that's not what Imposter Syndrome is.
What OP said is much more accurate though I disagree that it only affects high conscientious people.
Neuroticism is the tendency to feel anxiety, self-doubt, etc. I'm starting to suspect that people are confusing Neuroticism with Narcissism in this channel because Prime equated Neuroticism with "thinking too much about yourself".
I certainly did until I further researched after posting and realized my misconception.
I've been programming as a hobby for over a decade and have always felt I wasn't skilled enough to land a programming job.
Then I hear from friends in the field who tell me my competence is greater than some of their colleagues.
I don't have years of continuous use of a specific technology, I have over a decade of experience trying every technology I can and learning the patterns/techniques that persist regardless of your stack and exist because of it.
Yet, every time I look at job postings I feel massively underqualified. Personally I think this is because company expectations have led to the accumulation of ignorant newbies to specialize pre-hiring leading to underdeveloped engineers.
If companies took on more generalists, I'd imagine it would have a higher chance of bringing in innovation. At the same time, a generalist is more likely to bounce to a new opportunity if they don't feel like specializing.
Where's that 70% coming from?
it is so beautiful when senior have balls to say "I don't know", because mostly we only think we remember correctly. please, stop celebrating self-confident incompetence.
Who gives AF how well you know a language by heart? Focus on solving the problem at hand. Whatever it takes. The person who can accomplish that is the person I'd likely hire.
If you spent enough hours coding in this language there is no way you are that dumb you can't remember your language by heart.
I dont even bother memorizing syntax anymore.
@@TheSuperappelflap If you're actually programming in a given language on the regular, doesn't memorizing syntax just... happen?
Like. Sure, you look something up the first time. Maybe the first couple of times. Maybe every time if it's something that just barely comes up. But the things that you need all the time, I would expect that you'd memorize them whether you want to or not.
@@ultranerdprime7468 Not if Im switching languages every couple of months, then I have to look it all up again
we found the copy-pastas
I really enjoy that you're selling the idea of CSS being too complicated to understand in a video about having confidence that technology is not too complicated to understand
What I'm unsure of though, is whether there's actual depth in programming available to most people?
A lot of jobs these days revolve around creating a product, and the most important thing is churning out a lot of shallow code (CRUD APIs + A bit of logic + a bit of UI on top), and ship the product / a new feature. None of this requires any level of in-depth knowledge.
I've been employed for 10+ years and I believe I'm at the point where I could jump into any codebase, and be able to do something with it.
What additional level of depth is there, besides:
- Some Open Source project
- Some inhouse project at a FAANG company?
Majority of the companies are not solving novel problems, that would require any depth of knowledge.
It is somehow in a weird way like digital plumbing. I feel like real novelty is found in a passion project somewhere either privately or something nice that people want.
Well, I get what you're saying, but when it comes to performance optimization or even some bug investigations, some level of depth is required or at least helpful.
I was for example working on optimizing performance of database queries, as I saw/thought that we had a lot of potential for improvement there, and that required getting to know more in-depth things on how MySQL works for certain queries and working with or around the MySQL query optimizer. It paid off, I think I got every query (at least the "realtime" ones) to single-digit timing, most to
80% of IT companies are selling HR software to other companies that sell HR software.
TLWR: Fear got replaced by love and hunger.
Long version: Motion designer learning gamedev here. I started programming 2023 January in Unity C# as a new year resolution and until recently I was crippled by the fear that I'd never truly understand it.
This year someone asked me what I do for a living and I blurted out "Design by day, games by night", tongue in cheek at first but it was then I realized:
I LOVE PROGRAMMING.
After one slow and painful year of botched projects, unfinished game jams, sketches etc -I can slowly dip my toes in topics like loose coupling, FSM, generic classes etc. I had no idea that IT IS ACTUALLY FUN.
I realize I truly know very, very little but the difference is that fear got replaced with hunger.
If you read this far, thank you ^_^
Of course its fun, why do you think people do it?
As I near the end of my CS degree, the midwit statement is so damn true. All the courses while helpful and at points high level, felt like introduction to a subject and topic. They never go truly in-depth in any specific subject because CS is as wide as the ocean in topics to know and learn. My greatest and most confident work was all from "extra" learning or research outside of the curriculum.
With traditional engineering, at least, you tend to get 1-3 lectures on a subfield created one by one of the best historical talents over their lifetime. There's a lot more to cover, but you can't truly cover topics in-depth until grad school.
One of the important things is the dogged determination to solve a problem. This leads to solving the problem and moving to the next step of learning.
That's how it goes with DHH. The first thing you read or hear about him will make you disagree vehemently with him. With time, you could find yourself becoming a fan.
He's not afraid to question the common ideas and practices. You'll like a lot of what he says. Even the things I disagree with him about, I still agree and see a point in his reasoning for it.
Wow. So he's like the anti-UncleBob?
@@DarrenJohn10X If you mean DHH, I don't recall him saying anything about Uncle Bob.
@@DarrenJohn10X You may want to check his article "TDD is dead. Long live testing".
P.S: I'm a TDD fan.
The longer you are in the craft the more you tend to disagree with Uncle Bob. I think his ideas are a decent starting point for inexperienced devs, but later on you realize that there are more shades between white and black. ;)
00:37 if he’d have clapped for any longer i would have uploaded this sound to cornhub
Imposter syndrome's sometimes unintended side effect is instilling grit into people with high natural talent, creating somewhat broken but highly exceptional coders. Coding has always come very naturally to me, but thinking it's never good enough or I've never "made it" in the industry has helped me build the grit necessary to push through.
I’m a self taught programmer who spent time intentionally improving my craft, however I also happen to be far into a PhD in theoretical computer science which is not at all about practical programming but more about proving mathematical results about theoretical computers.
What I have seen after working at big tech companies for a few summers through my PhD is there are great programmers but being a great programmer is only one part of the story, you also need to be a great problem solver and I have found many software engineers don’t have as strong problem solving skills as someone with a cs theory or math background (for example). In practice this implies that the good programmer might put together a sensible solution to a problem with the proper coding style and seemingly full unit tests, etc. but the issue in their work may start with the high level solution to the problem itself being flawed. This isn’t always the case of course, some problems are simple enough that they get a right solution for from the start; however, there can be tough problems in the real world that lead to such a situation. For example, they and their software engineering colleagues may be unable to see that there exist a class of carefully crafted bad inputs that could break their algorithm so they don’t catch a flawed implementation at review time. Additionally, they may fail to see their problem is similar to another well known problems that they could reduce to and have a more bulletproof/optimal result. This is where good training in computer science can honestly be so useful.
So at the end of the day, being able to write nice code is important and is its own craft but being able to perfectly solve a hard problem is another skill and there are many programmers I’ve met who fuck up in this regard even if they can make perfect looking code.
He probably calls his the "Two Large Primes"
"Our profession is the world's greatest RPG" - Prime
I couldn't agree more. I wish more people would see that.
I'm a physicist/bioengineer/CS frankenstein scientist. It just keeps getting more fun.
How is it that the Tech Lead, who is always on-call and putting out fires, gets promoted, but my team has a 100% deployment rate, 0 bugs in the last 12 months, and 0 turnovers? The other guy gets the promo because I was told 'Tim' had to deal with prod issues, bugs, and high turnover? Have you idiots ever thought that 'Tim' was part of the problem, he's not a problem solver, he's a problem starter. I should just suck at my job so leaders can see me struggle to just get promoted. JFC!!!
0 bugs? You guys don't deploy anything 😂
@@Tldr205 Tim, stop trolling me.
Yes, my coworker got a promotion because he extinguished the fires he started. I spent my days easy, to focus on code that has no bugs, so fires don't start in the first place.
It eill never soundd as good as the manager remembering Tim solving production hell at 2 AM, even if Tim caused all that.
Not suggesting you should do what Tim does... but i had a colleague that was doing something like that intentionally and being proud for bring recurenr work/ clients to the company.
In my opinion he was lucky his clients didn't ask for second opinion or were to trustfull...
But that is a diff story :))
For promotions your performance is not relevant, what is relevant is that you do stuff to stand out to mgmt. This is why asskissing exists. They probably dont even remember your name. But they remember Tim. Hes quite the character.
Sucking at something is the first step at being good in something, HOWEVER many many people just plain expect other people to be good straight away. This leads to the problem described in this video.
1:21 The senior shouldn't be saying "I don't know how this works either." The acceptable version of this story is that the senior may also have to look up the syntax. The difference is the junior has to rummage through the tool box, searching for something that will work. The senior should understand at least to a very large extent the tools available, which might be useful in the current situation, and the benefits and drawbacks of various available approaches.
Yeah the senior may be fuzzy on the specifics but they should either know how to research to develop an answer or have an outline in their head. They should also have confidence from previous projects that it's a process and just takes time.
When I was in uni, for about 2 years I had a friends group where everyone had that "I just wanna pass" attitude, and I felt super comfortable. Later, I got into a different friend's group where our team lead was insanely productive and proactive, getting only top grades everywhere and participating in absolutely everything. Our entire class was full of enthusiastic people who wanted to build good games, our prof even noted that our class is the most ambitious and hard-working she'd seen in her 10 years working. These last 2 years were the most fun, productive and inspiring moments of my life. I was building cool smart things I'd think I never could, our project was picked and displayed on a cool tech event for thousands of people.
The way i always read the meme is it was more about attaining the skills and enough knowledge to be able to work on things withought knowing that specific thing. like as a senior i get assigned fucking crazy random shit all the time and i don't know it specifically but either i have enough adjacent knowledge to solve it or know how to find the solution to it very fast.
I loved the last part, reminded me of another related quote by Jim Rohn ”learn to work harder on yourself than you do on your job”. Applies to programmers too
I don’t think working on a project just to get a job is wrong if once you get the job it allows you to work on developing your skills for longer periods of time, most of us need a job and can’t wait until we are masters before we start earning a living
I don't think he was knocking the idea of working on projects to improve. His point was that getting good is a much bigger process than just completing a project.
I was constantly looking for a path to become a proggamer, but after seeing this video I came to understand that I need to learn how to be a really good programmer, not in order to get a job, but to make a whole carrer on it. Great message!
The incompetence here is thinking this is anything new. I was in the industry for 25 years. There has always been a fairly high percentage of people who just do not know what they are doing. My assumption is that this applies to every industry.
Going through an incredibly hard time since getting laid off 6 months ago. I’ve been cranking on side projects and leetcode to stay fresh, learning C# and Python by writing servers from scratch, and yet no success in the job hunt.
somehow, I find some hope listening to these rants. Of course I have doubts, sometimes I need a reminder that I can learn anything under the sun.
6:00 The only advantage of prestigious universities is the connections and networking that you do.
That is very useful for some careers, and irrelevant for others.
Currently, I work on the daily with people with MIT, Princeton, CalTech, etc degrees and phds, and I did my degree in a small university of a small Spanish city.
Physics is the same in Spain than in the US. There are no secret formulas that are only taught to MIT undergrads (at least not that I have seen, maybe they are that secret).
The main difference is that they have north of 100k in student debt and I am 100% debt free.
I keep trying to explain why the exorbitant prices of Ivy League and other top tier universities are stupid and unjustifiable, but the prestige is too much.
If you are in MBA, law school, or even medical school, then it could be justifiable, as networking in those fields is fundamental, and sharing a lecture hall of that son of that billionaire, or that daughter of that oil tycoon, will make a huge difference. And for medical school, being able to do your residence i this prestigious hospital instead of in a rural hospital, for example (I don't know how residence selection works in the US with private hospitals and private universities. In Spain there is an exam, every prospect gets a score, and the highest scores start to choose their place of residence, and down the line, until there are no more places).
Wow! Can you believe that?! You seem to be saying that in this world SOME people might actually be BETTER AT DOING SOMETHING than OTHERS. Well, in physical science, such as biology, paleontology, climate science, physics, immunology, vaccines PROVING WHAT IS OR WHAT HAPPENED IN THE PAST ****IS**** DOING.
The job is NOT how to fix things or how to apply things. That is what engineers do. Or medical doctors.
In Mathematics, PROVING A THEOREM, PROVING WHAT IS, *****IS**** DOING.
So, yes -- some people -- LIKE CLIMATE SCIENTISTS -- actually DO KNOW MORE about the effects of burning fossil fuels on earth's temperature and climate THAN THE BILLIONS OF BIASED LAZY ASSHOLES WHO ARE COMPLETELY BIASED TOWARDS IGNORING AGW AND REFUSING TO MODIFY THEIR COMFORTABLE LIFESTYLES TO REDUCE THE PAIN & SUFFERING & TRAGEDY OF HOMELESSNESS & POVERTY IN THE FUTURE FOR YOUNG PEOPLE WHEN THEIR HOUSES GET DESTROYED BY INCREASED TORNADOES AND HURRICANES.
Some people -- LIKE VACCINE MANUFACTURERS -- actually DO know more about the benefits and risks of vaccines and their drugs through MASSIVE scientific testing -- than lunatic political cranks like Alex Jones or RFK Jr.
If arrogant shitheads think they are allowed to be contrarians to climate scientists, evolutionary biologists, physicists
then I get to be contrarian to police officers, to judges, to prosecutors about the law,
I get to be contrarian to musicians & actors & screenwriters & dancers and proclaim *I* know more about tv making and moviemaking than Tom Cruise or Steven Spielberg.
I get to be contrarian to Bill Gates about programming: I know more about programming than Bill Gates.
The Ivy league schools do tend to have some interesting professors, meaning that you can get to work on some fun projects on your BA/MA/PhD projects. But that is very field dependant, and European free universities also have great PIs
Now i feel better about not just feeding interns answers, even if it makes them sweat.
"Imposter Syndrome can be overcome by recounting your abilities."
Life wisdom for everyday work right there.
Spoken like someone who has never felt imposter syndrome...
@@gnack420 I mean it. I was fighting with imposter syndrome for years. Especially when I got shifted from coding to project management. I wish I knew a good way to deal with it back then.
@@gnack420 So true
Re: the memes about Jr. and Sr. developers not understanding the same code, I always took those memes to mean that they don't understand it for different reasons. The Jr. doesn't have the experience to break it down because it's too complicated. The Sr. doesn't understand it because it's a complex part of a legacy system that was written by somebody who left the company 5 years ago.
when ever some one says "don't celebrate incompetence" it usually means the person has a ginormous ego. I've worked in consulting for for over 15 years and contribute to apache since 2002. You can understand enough to be productive, but to understand the entire thing for a large system is basically impossible. Does anyone understand every part of Hadoop? I gonna say "no, that's not possible."
the original implementation based on GFS and Bigtable looks nothing like current hadoop.
Nice to see Prime appreciating DHH. I've always admired both of them, and used to be a little confused when Prime used to make fun of DHH.
The difference between the senior "i don't understand" and the junior "i don't understand" is that the senior knows they are eventually going to figure it out.
The problem here is that for most industry jobs, you know how to program, you know exactly what you want to do, and you know talented people have already made tooling that will help you achieve it. The job then becomes utilizing the tool to achieve what you want instead of utilizing your "programming" knowledge, which is more often than not a bunch of reading documentation and googling errors. Most problems can't be solved by your coding knowledge alone, so you're basically always in a constant state of "Idk exactly what's going on but I'm figuring it out"
It’s shouldn’t be “I don’t either”, it should be “I *didn’t* either”
I like this one.
I'm a junior and my senior will not only ask me what stuff does but make me prove to him why I know that using the code. "What does this do? Are you sure? How do you know?" And that mentality alone has taught me so much.
As a self taught programmer i can affirm its a pretty simple reason. Almost all of us self taught people were midwits who got lucky and got a job, then we realized how real it was when we saw an expert flying through an issue that would take us hours.
Then we panic, get anxiety, spend years trying to catch up. Now that we caught up we feel like its all just faking it even when its not because thats how we survived the first couple years of working.
I feel it's kinda the same with uni, at least for me.
Like, in high (or even middle) school you write stuff mostly out of fun, maybe even publish it somewhere and people do like it, and you feel like "yeah, I definitely know something about X". And then you enroll, and suddenly there are now lots of new concepts you struggle to understand at first (if ever!) and lots of new people about your age casually saying like "oh, I have 2 years of job experience in X, I also worked with Y and Z in my free time, and learning W as a hobby"... and you understand how awfully do you actually suck.
Prime, you need an applause button. I spaced out for a second and thought my Incognito tab wasn’t muted. 😂
midwit is my new favorite word
I majorly suffered from gifted kid syndrome for a long time. Totally screwed up my life for 5-10 years. After getting back on track and squandering the advantage, I enjoy the hard work/grit.
I think there’s a difference between “knowing the language” and “knowing the standard library”. You can be amazing at mathematics, and not memorise every trigonometry formula.
“How to read a file” in a language can depend on the OS or the runtime.
At least that’s what I tell myself to cope with the fact that I don’t think I could read a file in JS without the LSP…
When I say that I don't know how it works either isn't because I can't understand how, it's because I don't remember, and I'd have to take some time outside the meeting and look at it.
My biggest peeve is hearing "we can't make that feature because its not supported" from one of the juniors who hasnt even looked beyond our provided ui library.
Never forget that yoy can do literally ANYTHING in software. It should always be a question of how lomg will it take.
oh, you can do anything in software? let's see you write a program that gives a general solution to the halting problem then
I've had this experience in the exact reverse. I guess this depends on the shrewdness of the company, but as a junior, I would usually get a demand for a new UI element, a special way to trigger some action, or to implement a feature, that fundamentally goes against how the process was designed. And I would always just yesman it, saying that given enough time anything can be done with software after all.
In my experience, following such demands leads to horrible mess of a codebase though. A senior should know when to counter the management and come up with ideas that are realistic for the codebase. In the end this saves sanity for the programmer and money for the management. A win-win.
@@niamhleeson3522 I always found this "moronic" when I studied CS in uni. Yes, the halting problem is undecidable. But only on the assumption you have infinite memory. That's not exactly a realistic scenario. The halting problem can actually be decided if we just start considering actual real life finite implementations.
@@JanVerny It's **intractable** even for tiny amounts of memory, 1KB of RAM can be in ~10^2466 different states, you can't just enumerate them all. The halting problem can't be solved in theory *nor in practice.*
@@JanVerny oh for sure there is a balance to it. My problem is more so giving an uninformed no. I have had a lot of junior developers say something is impossible, only because our main UI library doesn't support it easily. We write the UI library, so if change is necessary then its something that should at least be explored. In cases like that I think its always better to say "We will have to do some research and get back to you on that". In the same vein, an uninformed yes can cause issues like you mentioned! Sometimes its really good to say "No, we shouldn't add a button there because the UI guidelines say its not a great experience. But hey it sounds like this is what you are really looking to do, maybe we can achieve it this other way". Great call out :) Thanks!
This 10x person fixed imposter while memeing about it. He's as kind with the meaning as mean with the memes
The Virgin Self-Deprecating Humor vs. The Chad Absurd Self-Confidence Humor
Knowing I suck (to some extent) is what keeps me interested in this profession. Always more to learn.
Prime does not understand imposter syndrome at all. I am not surprised, given very many people misunderstand it.
That's basically what he said though? He said it's never really computed for him and listed reasons why it doesn't make logical sense to him
Yeah I thought the same thing.
One man single standing ovation included!!!
The senior's "I don't know" does not mean the same as a junior's "I don't know" -- sometimes it means: I don't care.
when senior tell you "I know" about some old feature, be ready to listen bunch of fictional stuff
11:02 man I assumed you wanted to add numbers that are THE code file somehow.
There is two extremes too
The one who always copy paste
The one who never copy paste, ever (because it does not understand other people code)
What happens between me and my shell is something that someone calls sexual
Shell-sual!
I had a bit of an imposter syndrome when I finished my bachelors degree and was working, however I noticed, that while I was not as good as senior programmers, I was asked by them about other topics. I then noticed: I might not be as good as some others in all topics but I know a lot and I am not wrong in place at my work.
10:00 Bold of you to assume that we use LSPs.
exactly :D
- ruby developer for ~20 years
@@DevranUenal I tried LSPs very recently for Python (with all the bells and whistles, like autocompletion, etc) and I actually got rid of them very soon, because there are four types of situations, in my experience:
- The LSP does not work.
- You remember the name of the function, but you do not remember the exact detail of an argument, so you have to look for it on the documentation anyway.
- You do not remember the name of the function, in which case the LSP is also not going to help you (I mean, it could, if you want to shift over 100s of possibilities sometimes, instead of just Googling what "That function that does this python", which works 95% of the times).
- You know the name of the function, you remember all the details, and the LSP randomly forces its help onto you (e.g., you have autocompletion activated and you clicked Enter for a new line without clicking Esc first), and now you spend more time deleting the snippet than just typing the actual name.
Since most of my cases are the last one, I found LSPs just incredibly annoying.
25 years of (mostly) Perl development: What’s an LSP?
I began my software development career using vi on UNIX. My debugger was a pen and paper.
25 years of programming here, didn’t have any kind of code completing IDE until six years ago, and Copilot came shortly after that. When you have to write your code rather than ‘dot’ or ‘tab’ your way through IntelliSense dropdowns, you learn it differently.
I actually had to look up what that is, for some (to me) unknown reason I don't like IDEs and I hate autocomplete (unless it's manually triggered). Sometimes I fall into imposter syndrome but then I remind myself that huge companies like Amazon, Blizzard or Ubisoft asked me how I did a thing because they wanted it too (and I think Blizzard still uses my "hack" to this day)
Hours spent is a function of "willingness" or "motivation". I'd propose this "skill equation": Skill = talent*hours_spent(motivation)
Imposter syndrome is the fear of saying “I don’t know”. I was lecturing a class and a student asked a question. I replied offhand “I don’t know”. The class was stunned and the student almost yelled “you are the teacher!” I grinned and said “I wake up ignorant and reduce that ignorance every day. Let me show you how to do that and we’ll find out together.”
and then everybody clapped
@@thomas.thomas It was my first semester teaching after 26 years in various sectors. Don’t recall clapping but my Iota360 student review came back and my dean said “whatever you’re doing keep doing it”. That was eight years ago.
I've been stuck in my current SWE job for the past 3 years doing mostly the same every day. Every time I hear him saying we can aim for something bigger, I feel a fire rekindling inside me that I don't feel since I was a child.
God, I need to move forward.
Fantastic - but to channel prime you can also move forward on other axes than your career, be that a hobby the relationships or whatever!
I was in a rut for three years also, tried a few side projects in bwtn, but the job was always the same. I got fired has been a few months, never felt better, doing some freelance and studying a lot more. Don't let any company kill your passion for programming. GL!
The first step towards moving forward, is to move forward. You have to just do it, good luck my friend, wish you the best
Saw a post on reddit where someone complained about C# double IsNormal, that it's unclear what it does and Microsoft should do a better job. A lot of people agreeed and the one guy who called OP out for not knowing the basics about programming has been called mean and has been downvoted lol
Just read the post. He's not totally wrong but also acting like a douche.
What is Microsoft supposed to do about it? Put "Go read the wiki article on subnormal numbers in the IEEE 754 floating point specification. It's really interesting." in the mouse hover tooltip?
Well, that would encourage to learn, so maybe the answer is yes, they should do that.
As a developer I'm more than willing to admit when I don't know something, but I'm also more than willing, and able, to go figure shit out. I think that's the most important skill in this profession.
"I know I did just say the word 'sex' to a bunch of Arch users which may be confusing", you made me laugh @ThePrimeagen!
I feel like developers saying "I don't know wtf I am doing" basically means: "I don't know the 'correct' way of handling this issue, so I'll need to figure it out as I go"
The difference between junior and senior would be that junior may be stuck at that point, but senior will know what will be the next steps in approaching the problem
Which is like, totally normal in software development
If you are only working on problems that were already solved, why the fuck would anyone pay you any money, instead of using some random opensource thing?
In an ideal world, a junior would be subject to taking paths that wont make it to the final product while a senior dev would be the one paralyzed until the right path was revealed... but in practice its exactly the opposite
I get distracted too easily and i know this is a real problem, but even when coding not as focused as i wanted to be, i still deliver code and projects in time
Ok, time for bold takes: If you think Tailwind is great, you're not a good frontend dev. If you think AI will steal your job, your're not a good dev at all.
Mid to low tier
Tailwind is great, but specifically for react, where components are reusable, so your styling is too.
Separation of concerns with CSS and HTML sounds great in theory, but in practice it's just unnecessary abstraction a lot of the time.
Much easier to have each component's styling be clearly readable, clearly defined, and "in-line" with the rest of the code.
CSS being separated is a bit of a holdover from the past imo, where you'd have a website composed of three files: your HTML, CSS, and JS. Nowadays, with the functionality being so tied to the structure and style, it makes more sense to have it all available together in the one file.
It's helping me learn so much it actually might help me *get* a job.
i've been working for 15 years as a software engineer, got plenty of promotions, I still get imposter syndrome from time to time, despite everybody telling me I'm awesome at my job. It comes with the territory, the more you know, the more you notice how little you know.
By the way, I dropped out of a master degree program… I already had a job and after that I got my dream job!
"DHH" is cartoon level ego - he's just as funny and self-unaware as a 3 dollar bill - and his posts are worth about as much too. This one's some kind of weird mix of rage and humble bragging about how far (he thinks) he's come and he's sick of all the plebs - but hey, don't worry... you too can be as good as me some day too! Just don't use the internet, and be sure to make other people think you're "the shit" even when you don't know the first thing about a subject because there's nothing worse than admitting you don't know something!
I think I got grit by doing athletic things I wasn't talented in and trying really hard. Then i came back and applied that grit to math and programming.
I'm too lazy to setup LSP, so i write everything without it :)
I'm lazy too so I just copy the git clone lazyvim from their install step and launch nvim and select my language plugin.
Most stuff with neovim might as well be magic as far as I'm concerned and I'm fine with that
I was always under the impression that being a good programmer/software engineer came down to having good discernment of a problem knowing how to solve it, using advanced and efficient techniques. Not necessarily knowing a language deeply and its tooling to not make you look up how to do certain stuff with that language on the internet.
I don't think looking up stuff makes you a bad developer. What about documentation? What about language features, considering you can't memorize all of them? What about a design pattern you've never used, but you know can help? What about general research? Does looking up all that stuff on the internet make you a bad developer?
Exactly. This is 2024, not 1990. People like ThePrimeTime need to realize that it's possible to solve problems without only using your intuition and memory. If I want to solve a problem faster and also learn from it, I use Google or look up documentation. I understand that developers need to write quality code and understand how it works, but that doesn't mean they shouldn't use Google or the Docs.
For the challenge of reading in a file and counting the numbers I might actually be able to do that in C or C++ even though I don't consider either of those my top language but I did so many things like that in school it's burned into my mind at this point.