When I was a junior developer fresh out of bootcamp I had the acute sense that I was in over my head and that I needed to work my ass off to get better. It wasn’t “imposter syndrome.” It was an accurate assessment. If I had ignored that feeling I would have never put in the work needed to become a better engineer.
I was fresh out of university during massive layoffs. I participates in a few hackathons and get a few rewards, but I wasn't an engineer student, so I don't really have a frame of references of how good/skills level of other engineers are. But I do have the privileges of being from a 'top' university. so, I managed to get a job during that time, it only lasts a year before I got laid off, I feel like I don't have any ideas what I'm doing, I wasn't able to structure code properly for it to be reusable, finding method/utility that already exists in code, trying to understand the business logic in the codebase with 10 million lines of code wasn't easy either. That really hit me, I suck. HR told me I got laid off because I was "the youngest" "less experiences". I don't fcking believe it, there's no way they would lay me off because of that. It's hard to believe that while having self-doubt about your own skills. why wouldn't they just tell me my performance was bad? Thanks to that, I now understand why all these 'best' practices matters, why structuring code matter. Why communication and agreement on how to handle code in the team matters and I have so much more to learn, I have to stay fresh even if I already have a job, I should always learn, polish my knowledge so it wouldn't hurt me if I happened to get lay off again.
That's an important distinction here. One of the qualifiers for imposter syndrome is that it has to be perceptual. If you are an imposter, it's not imposter syndrome. Imposter Syndrome addresses something different.
@@DMSBrian24 so how linus wrote the linux kernel, Steve Wozniak built the whole apple computer with its hardware and software ? these dudes knew everything, I'm a low iq monkey compared to them.
i've heard turbo tax puts the loading screen because the initial version was so fast that users thought it wasnt worth it, or it wasnt doing anything so they intentionally added loading screens and added wait()'s so people felt it was worth 60-100$/year
I heard a guy say he did this for an app which scans for open wifi connections. It was pretty much instant so supposedly people felt it did nothing, and adding a little wait made people more likely to pay for it.
This is actually a well known effect now. The human perception system requires some fixed time to process input and create an “event” in our mind. If you initiate some task that completes faster than this interval (under about 20 ms, varies slightly by person), you perceive the task as instantaneous (or even occurring *before* you initiated the event) and this can be very confusing. This happens to me now on a daily basis, when I “like” a friend’s message in Facebook Messenger, there’s an audio cue that plays to indicate you have clicked the like. Well, that audio cue plays so fast after I click the like icon that I perceive it as happening *before* I clicked the like button. It’s very unnerving, but because I understand what’s happening I don’t freak out like I might otherwise.
@@RobRoss You can learn to get over this, and people would if we just made software that actually ran in minimal time. The perfect example of this is command line programs. We don't question it when command-line programs are instant.
I'm fully aware all my old code is likely crap, my current code is likely crap, and my future code is likely going to be crap, just getting progressively less crappy. Humans can't write good code, as long as it ships and it works and it can be maintained, it's good enough. I'm just confident I can continue learning
I think it was like 2016 when I first heard of Casey. He was doing his homemade hero thing. I had to quit following it. It was some of the most poorly written code I'd ever seen.
Ok so I worked at a non-profit bootcamp where imposter syndrome was a thing we had to actively deal with. As far as people comparing themselves, I think it has a lot more to do with their own low self image. People would be getting every question right, building out impressive personal projects, and then saying they didn't feel like they were getting anywhere people someone else had built a "better" project. A huge part of imposter syndrome is not just thinking "oh I am worse than all these people who are better than me." A huge part of it is the feeling of "there is an insurmountable gap between me and the people who are better than me and I will never get to be that good". The funny thing to me about it from my perspective is basically all of my students were within hours of being the same skill level. It would be like very small things where one student would figure out how to write a lambda in java before the rest of the class and we would genuinely get people showing up to office hours saying that they felt stupid and they wanted to quit because somehow their peer understands lambdas and its so complicated and they will never get it. One pep talk later and like 2 medium articles and they would be caught up. To me it could sometimes be frustrating because people would be crying about other people knowing concepts that take like an hour to learn. I would have to remind people all the time that they should be happy for their friend's growth. Anyway imposter syndrome in my experience counselling people with it has not a lot to do with an accurate assessment of what you do know. It is an inaccurate assessment on what you don't know that everyone else does. It is a feeling that the things other people know are too complicated for you to ever understand because if you could understand it, you would already know it. When you say it out like that it seems completely ridiculous and I think people who experience these feelings know innately that its somewhat ridiculous, but it does help people (and yourself) when you just say it out loud. Not everyone experiences imposter syndrome, but those that do tend to hold themselves back a lot without some encouragement.
Definitely feel that. I've got an impressive list of personal projects, then RUclips dumps Steam Engine Simulator and CodeParade's 4D Golf into my recommendations and I feel like I know nothing. Best thing to realize is that it's not about what you can do, it's about what you can learn how to do. Personal projects are proof that you know how to put in the effort more than they are showcases of knowledge.
What might be the root cause for people worrying about others? I only focus on myself. I don't care what others can do. I suspect these people were raised wrong by bad parents. They need therapy, regardless.
So something to put a thought to; poor self-image also comes with the fear of failure. That few hours behind isn't necessarily a few hours, if people never type the lines, because they are locked in anxiety, trying to get it right, without screwing up... which... we all know is no big deal.
@@blain20_ I don't think its that deep honestly. Its very natural for people to compare themselves to others in all fields. I am not sure what the root cause of it was or that these people were raised wrong. They were fine upstanding people and you wouldn't be able to tell privately that they were really feeling this way. Honestly after doing it for years it was still impossible for me to predict who was going to have bad imposter syndrome. Maybe therapy would help. TBH 90% of the time they just needed someone to tell them they were good enough.
@@SeanJMay Yeah. this is probably a big part of it. Fear of failure basically goes hand in hand with it. "I can't do it so I won't even try" is sort of the real underlying feeling and often I could solve it as a teacher by being like "no you are wrong, you can do it" Honestly the reality is not everyone was innately talented or capable of really going super far as software engineers. That said, the people who felt like they couldn't do it were rarely the actual bottom of the class even though they often thought they were. You were never really able to tell who was going to feel that way until they expressed it to you too. After years I could not predict who was going to confess feelings of imposter syndrome. The real kicker for a lot of these people and what held them back a lot was that if they got a problem on a test wrong or struggled with something in a lab/homework they really let it stop them in their tracks. "I can't write a function that generates Fibonacci numbers so therefore I must be a failure" and it would usually be like well what's wrong with the code and they wouldn't have even attempted to debug. They just kind of felt pathetic that it didn't work first try. Coding and engineering requires that you fail gracefully often because you won't always get everything right. I really tried my best to convey that to people but sometimes that pain is just deep rooted and after they leave the class I can't be behind them pushing them forever.
The problem is all these shortcut programs aim at making programming "accessible" and convince you that engineering is easy. They bank on the high demand for engineers by giving everyone an unrealistic view of what is required to be one, and everyone who finishes these bootcamps is convinced they are now a super genius about to make half a mil a year with their first job as tech lead.... no shit they're gonna feel like an imposter when they either can't complete their first task on the job or can't even pass a single interview to get the job in the first place.
I think they missed the point. Calling yourself an Engineer is the problem. Ask a bonded "professional engineer" (Structural, chemical, etc.) what it took for them to earn and keep that title of "Engineer".
@@tconiam Ok ok, software engineering isn't "real" engineering. I get it. Computer science isn't a "real" science. Let's move past the semantics. The words in the title are not the problem. Knowledge work is knowledge work. It involves breadth and depth of experience, creativity and critical thinking to solve problems whose solutions aren't immediately apparent. You can call us keyboard jockeys if it makes you feel better, but it won't change the fact that so many people are starry-eyed for this profession without understanding what it entails.
The way I see it, there are 2 major reasons for imposter syndrome: 1. IT is a huge field with a ton of overlapping subjects, so if you dig deeper than the topmost nanometre level you will always find something you don't know, and being taught to feel inadequate if you don't know something, you're feeling as if you sucked when in fact you may be doing a great job because your area of expertise doesn't actually require you to know stuff deeper than you do (though knowing inner workings of anything really is cool and absolutely something to strive for); 2. You talk to people, some of whom may be younger than you, and they may know or understand something you don't know or struggle with, and that makes you feel like they know more, while in reality they're most likely lacking in some other area(s), but you don't know that and assume they know as much as you do PLUS that thing you don't know. This one is both arrogance mixed with inferiority complex, but it's not that bad. The biggest mistake people make when the syndrome kicks in is assume they're a fraud, or a bad engineer or whatever and should quit IT together with just secular life in general and become a recluse living in the woods and sleeping on dirt and rocks, while the healthy approach (imo) is "o, dude, it's so cool you know that! Could you maybe take a little time out of your day to try and explain that bit to me, or just throw a link where I can read more about this if you're too busy?" The way I see it is as follows: it's extremely cool if there are people in my team who possess knowledge I'm lacking, and if they're younger than me, it's even better - that means that at the very least your co-worker is a cool knowledgeable person, which given that that person isn't an arrogant asshole, means that your team's productivity gonna be higher, and if you're very lucky maybe that person shares with you the strategy they used to become so skilled being so young. When you see your place of work as if not a family than at least a group of people with common goals, and realize that each one of you contributes to the overall success of what you're doing, this feeling of inadequacy dissolves real fast, and you should also dissolve your pride (in a bad sense) with it, which will allow you to see the reality for what it is. Your team may be or become your competition, but for the most part, these people are on the same side as you, and you should be working on achieving the best you can achieve as a group, and you as a person should strive to become just a bit better each day. If a day or two didn't provide an opportunity for bettering yourself, try and stretch your self-improvement over a week. Tbh, ironically in that sense, software development resembles going to gym: yes, there will be people bigger than you, almost guaranteed, but that's not a readon to fall into a severe depression, lay down and die; au contraire, it's an opportunity to learn how to become better, and if you want it and play your cards right - also to get a new friend, and one can't have too many friends okay.
Bootcamps exists for people that want to learn parts of the basics and quickly land a job, and since there is a lot of those and a lot of people wanting to land a job with just basic React and Next experience then the average skill level of the industry goes down. Basically, we have way too many juniors - maybe even lower - with little to no experience with pretty complicated technologies, producing code, that they might not understand fully since your average bootcamp is around 6 months long and does not go deep enough on all of its topics.
Nothing is wrong with new devs We all had that “aha” moment when we realized that dev is hard and/or not as simple as we thought And then there’s that realization that nobody knows what tf they’re doing in the grand scheme of things At the end of the day it boils down to go fuc*king BUILD SOMETHING You might fail or you might do something ‘wrong’ but that’s how it goes it NEVER ENDS Besides, how else do you think we got certain inventions today??? They saw a problem or just was ‘playing’ around and BOOM it happened intentionally or unintentionally Go put your phone down. KEEP LEARNING. Dream, build, and create whatever tf you can imagine The world is yours man Peace and much love everybody
> realization that nobody knows what tf they’re doing That's just you dawg. The kind of insane microprocessor technology that powers our everyday life doesn't just come about from chimps banging together rocks and Javascript.
It's kind of obvious that people have to sell themself as software engineers even if they are still noobies because it's incentivized by the job market. You can't find a job calling yourself a beginner, no, you should call yourself a professional from the first day. Always overestimate yourself, because other people always will underestimate you.
For the on-screen keyboard, what's actually stopping us from having a keyboard on the remote like the Nokia phone back in the day? Too complicated? It's like typing 1 => 1 11 => a 111 => b 1111 => c 22 => d ... and so on. If you want to type '12', it's 1 2
@@xybersurfer The _"I think"_ is not in a vacuum. With context, it's _"I think (we're talking about different things)"_ instead of simply adding uncertainty to the _"I do"._
@@xybersurfer It wasn't meant to, he was describing what those two words were communicating. For Gods sake, apply your brain before engaging with the internet.
It works like school grades. *C* is passing. *A* requires much more work and might get you a pat on the back. Or a gold star. I would argue that the long term benefits are usually worth it, but most strategies are just trending towards the short term imo.
bootcamps are businesses. Theres some good ones, but at the end of the day most are businesses that mostly care about their numbers as proof of concept to generate more business.
College and any form of higher education is a big business too. Even if you live in countries where higher education is free they all want you to go and spend time there since it'll bring them more income
@@owletkami8018 college is a straight up scam for the most part. Unless you really want to pursue a career that requires a professional license or is strongly rooted in academics, it is a horrible idea that most people are brainwashed into thinking you need to be successful throughout your entire childhood. At least boot camps, which are essentially trade schools, you can legit get a 6 figure job out of a 20k tuition and not the other way around.
I SO wish that topics that Casey wanted to do trended enough for me to find them. Ever since I read his discussion with Uncle Bob I went from skeptical to gradually feeling in stronger agreement and now seeking others who also care as much about quality. He pointed out the dogma that had been tingling in the back of my mind for a decade, and I've learned so much from his advice since then. I wish there were many more like him in the public space. I know from experience several clever devs with wisdom gems to share with three digit followers, but Casey is just that much better at serving the information in a great way, when he _really_ wants to. Thanks for having him on again!
There's the Handmade Network and Jonathan Blow's rants, to mention a few. Eskil Steenberg is a genius C hacker. Terry Davis is brilliant if you want to go explore some wilder worlds. The book "C Interfaces and Implementations" is a treasure chest of elegant, utilitarian C. I LOVE watching experienced craftsmen tear down their own domain. A day doesn't go by where I don't hate on my languages and tools of choice. I also love them, and a defining aspect of that love is honesty and directness, so it's both cathartic and kind of intimate and rejuvenating to unload your frustration. Makeup sex afterwards.
Casey's Handmade Hero series spawned a community (The Handmade Community) that has a podcast, a conference and an number of interesting projects under development.
Like many things I think this boils down to a problem with incentives. When I entered the industry 15 years ago it was fairly difficult to get a job and it wouldn't be high paid even if you had done "all the right things". Nowadays there are a whole host of companies who are hiring people with very little provable experience and starting them on the same salary that you'd get from a skilled tradesman in other industries. This is part of what creates this situation where software development is slower and results in worse products because you have teams which are spending a lot of effort trying to get productive output out of these employees and the companies will keep hiring more developers because maybe 1/5 of them will actually be productive. Most companies don't have a good grasp on the notion that you can have a team of 10 developers where 2 of them are doing more work than the other 8 combined and that some of those developers produce negative work. I think it is important to be empathic and realise that this isn't necessarily the fault of the people who are being hired and they have been told by the industry that they are ready for this role, but I do think that it's unreasonable to think that this would work in the majority of cases. I think what would need to change is that companies need to increase their standards and hire fewer junior developers (or developers who don't have a provable productive track record) in favour of paying more for a smaller number of more experienced developers. While it is difficult to hire senior developers it is not a solution to just get 3 juniors instead.
We have an internal admin panel for some customer facing products that literally takes 5 minutes to load data. It's been a problem for years and the team responsible refuses to fix it and just cancels your ticket if you try to report any problem with it being slow. I'm gonna try to quote the rant about slow software to them
I actually had opposite problem when I entered the workforce. I was expecting to be demolished by the scope of the work, instead I cruised by without effort and started to interview others workers if they had the same. When I was forced to acknowledge people had problem with what I found too easy, my whole will to improve was gone. And I'm not the best, I'm actually pretty trash. But because HR hires on CV, that is I cannot put in more effort and instantly get promoted to much higher pay especially as business side I'm not that great, I just have little motovation to keep getting better. And that makes for awful habit that beats you in the ass later in life.
I'd rather be a fool among geniuses, than a genius among fools. Seems like you've got few choices: * ask around, not necessary officially, if there's something you can work on (explain your situation); ask for pointers on how to improve your position; * look for an inspiration/motivation outside of work (contribute or start some projects - keep to the Goldilocks Rule of motivation - something you can complete, with some effort, enjoy the outcome for a moment and then move on to the next one); * look for another job (this one will always be a welcomed addition to your CV as well as some life experience). Whatever you do... do not lose the knack! (search Dilbert - "The Knack")
@@marshad82 thanks for helpful advise, life kinda choose for me and decided on the 3rd option. Ironically while the dev team was doing great, nearly always ahead of schedule, the business side made a bunch of mistakes. Well, I'll definitely use the first two advises in the new job, tho I'll wait a bit to see how I fall within first.
In my country, engineer is someone that works with engines. The title is "ingeniero" and it takes you 5 years to get one. Calling yourself "ingeniero" , without having a degree, is title usurpation and it is illegal. Someone that took a JS bootcamp is neither en engineer nor an "ingeniero". A bootcamp transforms an aspirant to an apprentice. And there is nothing wrong with that, my grandpa was a chemist apprentice in a factory when he was 18. After he retired, people (with degrees) came to our house to consult him. It just takes TIME and EFFORT to build valuable knowledge and experience.
Even in English-speaking countries, the term 'Engineer' in many fields is not just a degree but a membership of a specific professional organisation (and a degree is, while common, not always necessary as some also accept demonstrated experience). The key is that the 'Engineer' title tends to require extra accreditation beyond even a degree. Except "Software Engineer" which just means "Sounds better on a CV than 'Programmer'". Meanwhile, at my workplace I am a 'Technical Officer" which I dislike as it is so clearly serves no greater purpose than the same "Sounds impressive to people I have no desire to impress". I prefer plain old "Technician".
That's arbitrary definition. The latin word "ingeniator" is someone who devices and constructs. This means there's natural talent or cleverness to do that.
I have a vague memory of some programs when a full line of text is highlighted the window begins to scroll downward and then you lose your spot and a whole paragraph is selected.
@@jackschofield7308 he probably only said that with the express purpose of annoying the viewers when they began being annoying about his habits. He probably just has a quirky habit just like we all do
I feel like it has something to do with his tool chain setup. Like he has something running that will auto copy any full lines of text copied into his buffer or some shit
@19:00 We do have a section in our dev interviews to ask if they have ever used the management tools we use every day, but it's only to get a sense of how much one-on-one training they might need during onboarding. They could answer "no" to every question in that section, and still get the job, because we're only looking for ~70% correct answers in the technical interview, and a ~B in their practical dev test. (for entry dev candidates). We also give them a little slack if their dev test was really good, and we can tell in the interview they might KNOW what they're doing, but they don't know the "vocabulary terms" of what they're doing. They will learn these things over time with guidance from the team. Knowing "your vocabulary" is more important for Mid+, because it means you have a solid grasp the design/dev principles you're using and why you're using them. But not as important for Entries.
I feel like this perspective is what I've been looking for as I'm trying to find my way into programming and software engineering. A LOT of boot camps just default to javascript, and with what little I did learn, they never went over the WHY and the HOW of what we are doing and how that represents PHYSICALLY or MEASURABLY. I appreciate the content and the philosophy!
Honestly, I'd recommend trying out a uni course in Computer Science if it's feasible. It'll cover a pretty broad spectrum of topics, but so much of it translates between platforms, languages and problem spaces. It put me in a position where, even when I don't know a something, I at least feel like I can educate myself on it and learn as needed. That is, presuming you don't live in an area where you have to sacrifice your firstborn to be able to pay for uni fees.
@@AmazingPotatoFarmerThis is worst advice I ever heard. You don't need Uni to learn programming. I started when I was 10 years old, never took any course, I just read book and later used web search.
If you want to learn about the full path to making a basic game starting from logic primitives nand2tetris is the course. It will teach you how to make a game with a custom language on a custom emulator written based off of a custom hardware implementation made of basic building blocks made out of logic primitives. And all of it is done by you.
@@wiktorwektor123Not the *WORST* advice *ever* but yeah I don't think it's entirely necessary. Even if you want to learn the core low level, component level stuff, there's better resources online than in school. This will probably always be the case for fields like programming.
i studied for three years, and have worked in the industry for 1.5 years. this video is kinda like the therapy sesh i needed. time to write some go poetry
exactly 100% I feel the same about performance and I'm working on it very hard to convince the whole company (and it starts to shift in the right direction)
I get imposter syndrome after I change jobs. It's not because I have lots of new stuff to learn while the others are good at it, it's because I have just been through lots of interviews where I have to sell myself while minimizing negative points. It feels so fake to mainly highlight my positive sides and what I know while minimizing or avoiding negative sides and where my skills are lacking, so after that process, I feel like such an imposter until I have landed and gotten that process far behind me.
I'm very "back to basics" these days with my programming. I've been retrocoding, and also looking at the old books and software that I had as a kid. I believe the only thing "wrong" with the new devs is that we kept making a worse platform every time we went farther away from the hardware. There was a great hope way back when, that "the platforms we have now aren't perfect but we'll fix them up and have ideal code for this type of problem", and that really never happened. Instead we added more middlemen, and crowded around whatever they sold, and software became path-dependent in very arbitrary ways. A large share of it started with hardware being marketed to software development companies to make third-party products, not for end users to program directly. Then the software companies, in turn, sought out monopoly structures. The trend accelerated as we went online and into the smartphone era. It's the producer-consumer model(the economic one, not the Dijkstra problem) that is broken, because it keeps everyday people out of the discussion. So someone who enters into this field of working with computers now is more likely than not to *not* know how to concretely talk to them, they just know a particular priesthood of "how things are done" and it worked for them, but they may not be capable of challenging the high priests. You have to be seriously comfortable with throwing out the whole ecosystem and doing away with any assumptions Unix made way back when, to actually get to where you can see computing with clarity again, because the alternative is to just chip away at the layers and make very slow progress for years and years to know "oh, it has a fribble here because of the gribgrab", when the fribble and gribgrab are inventions that the original coder thought, a year later, "oh, I could have done that much better." For all the development we've done and how expensive it's been, if something happened that made us have to start over, like some dramatic political mandate, getting back to something roughly like now would not take all that long. Years, yes, but probably less than 20.
Yeah its all "lets make a language and compiler like C but easier to use and call it XYZ" and it ends up a mess and then its "lets make a language and compiler like XYZ but easier to use" and it turns into moosh when you need to profile performance or limit memory usage.
Immediately caching all the surrounding stuff locally must have been expensive on the delivery side as well. I'd argue that a short delay in the 50-200ms range, to 'confirm' that you're intentionally hovering that particular element and want a preview is both bearable and - just gut feeling - getting the user to be more purposeful in their interaction with your software may also lead to a better lock-in towards a purchase funnel
34:02 It's been 4 months bud. It's time for that quarterly Casey call! (I love all of Casey's videos so I'm always hoping for more people to pester him into being around more).
This was an wonderful video. You're video style is typically pretty high energy and fast paced, and while I've grown to enjoy a number of your videos, I feel like for me this is perfectly balanced. Casey is one of my programming heroes and I am looking forward to hear you guys talk more :)
Even though I've been a developer for decades, I totally understand impostor syndrome. It isn't a matter of comparing myself to any specific other developers, it's a matter of "Am I earning my salary?". Most of the time I'm quite confident that I'm doing a great job compared to what I'm paid, but then I'll hit a major snag on some specific project. There was one project which I was stuck on for weeks, and I was actually ready to voluntarily quit because I just couldn't figure out why I was stuck. Luckily my manager happened to be out that day, so I while I was waiting for him to return I went through all the config files, and found one very simple one-word config file which was *totally* *absurdly* wrong. I hadn't looked at that file because the correct value was so obvious that I couldn't imagine I had gotten it wrong. I fixed the value, and everything worked so I didn't volunteer to quit. 🙂
I spend most of my time logged out of google / youtube. Logged back in just to comment just how excellent the conversations with Casey are. Please have him on more!
One of the best things you can compose into any learning process (which to an extent is and should always be any properly implemented human activity) is getting used to "not knowing stuff," because while you give excessively worried attention to your knowledge deficiency you simultaneously detract from your capacity to fix it. The perceived lack of gaps in understanding, on the other hand, does nothing but indicate stagnation - that's where you should be worried...
My LinkedIn title is "*void". I finished mechanical engineering high school then did bootcamp, after that I had some internships and people seem very attached to their titles in the corporate environments, while the best programmer I met never used any sort of title but his name.
Big problem is a lot of bootcamps and training programs online are there to help get jobs, not necessarily succeed in keeping the job or how to do the job the best, it's all just: LETS GET THAT JOB...cool, for 3 months and then you, potentially, are a weight on the teams neck cause you can't carry your weight. Team work is one thing, being a millstone is another.
Not even to get jobs. Hire rate for bootcampers is pretty poor actually. Bootcamps are there to monetize the low-effort / high-money mindset fed by "you don't need collegue" Rich-Dad Ivy Leaguers narrative .
"MoveableObject" is actually one right way of doing it. It just indicates that this object has a transform (or even a previous transform state in addition in order to be natively interpolated) and can be placed in the world. That is very fundamental to most objects. Would be curious to know why you think it is a bad idea.
I'm also a bit confused :) Maybe we don't get the reference? Unity for example doesn't create a separate class / inheritance chain for "movable" objects since it uses a component model and you attach behaviour script to gameobjects in order to change the behaviour. Though Unity has the Rigidbody component which comes from the physics system. Whenever you want to have collisions or trigger interactions, your GO needs to have a Rigidbody component. You can move any other gameobject as well, however GOs with colliders should never be moved unless they are part of a rigidbody. Moving individual static colliders had a horrible performance impact in the past (as the whole world collider was rebuild when such a static collider was moved). Afaik the performance issues have been reduced, but it's still not a good idea to move a collider without a rigidbody as collisions would not work the way they should. In Unity you can actually specifically mark objects as "static" so several systems can perform optimisations (static batching, lightmap calculations, etc). Though static objects really should "never" move.
@@Bunny99s Yeah, performance isn't even affected here in general as MoveableObject can be a non-polymorphic base class, being stored in place in addition (means the transform is a direct struct and not a pointer to something). So even if it acts as a base class in a oop paradigm, it is still the right way of doing it. Unreal Engine actually does just that, it's called an "Actor". Same semantics as "MoveableObject". I think "MoveableObject" is even more descriptive than "Actor", and thus a better name. So mocking MoveableObject approach is essentially calling Unreal Engine creators noobs, lol.
2 years in to working as a dev. I know deep down I will never be great...maybe not even good by many peoples standards. But I will better than I was before and hopefully good enough to have a decent career for as long as I am doing it.
"What you need top post is something ambiguous and slightly incendiary." Yup, my co-workers and I always used to say: "If you get online and ask how to do X with technology Y, you'll get told to RTFM. If you, instead, say...'Y sucks, it can't even do X!' you'll get 100 people telling you exactly how to do what you're trying to do."
While I agree that the quality of software today is not great, it’s a bit rose-tinted to look back at old software and say that it was some kind of bug-free utopia. There is some thing that society seems to have where we always think we’re living the worst time for whatever thing we’re assessing. There’s some kind of mental block to seeing improvements over time.
This is one of your best interview videos. One thing that has become obvious to me, is that software doesn't need to be well designed or well written for a company to be financially successful. The nature of software is that it can be quickly fixed and fixing it is cheaper than building it perfectly in most cases. Sadly.
A friend of mine that is a software and programming book author, literally just recycles existing books contents but changes it enough so that it is unique. Nine times out of ten, if the example doesn't make sense or something isn't right, that's the reason: it's recycled and poorly understood by the author. I wouldn't have believed this until I actually heard it said plainly in just that way from the horse's mouth.
Prime and his friend give some good advice, but they are talented people talking. I would say focus on small but constant gains, study the basics daily on a schedule, always be building to get practice, get a sense of accomplishment before you get feedback but only pay attention to the ones that include a way to address each critique and eventually you will become proficient, more confident and a good team player that gets payed. There is only one thing better than being able to do something and that is understanding how it works.
For a long time companys were having a hard time finding enough competant engineers. So they started to drift towards making engineering more accessable rather than making their applications better. I think the quality of software is going to go way up over the next few years assuming we dont have an economic boom that surges us way out of this recession fast. Development though will be difficult to break into
Not far in, but when he said he didn't relate to imposter syndrome I immediately had a gut reaction of negativity. I let the man cook and I feel inspired, I'm good at what I do but not even close to the best. I know what I'm doing and am capable of far more than a lot of people but I have miles to go on my journey.
Yeah same, he's making it about comparison when for me it's more about "oh fuck, I'm assigned this bug on the kanban board and I literally don't know how to begin" Oh and he just said "I've never felt like I didn't get better year after year" so he actually can't understand this feeling, because for most folks I've aligned with in terms of experiencing impostor syndrome don't experience that feeling of leveling up, it's more like "fuck i baaarely got through that year" year after year after year
I never had a senior or even just another dev around to help point me in the right direction. I've had to learn how to not do things the hard way. Early in my career I changed jobs every few years and didn't get to deal with my bad decisions. Then I worked at a place for 5 years and during that time I had to deal with some of my bad decisions. Eventually I had to deal with code I wrote 10 years ago. When I started to deal with my own bad decisions I started to realize that I need to think differently about what and how I'm doing something today because there is a decent chance that I will have to deal with it in the future. You can't do anything perfect, but the quality and performance of what I built went up a huge amount because I'm not just writing something to work for today anymore. A little goes a long way and assuming that in the future I will be the one that needs to deal with what I write today has helped me improve a lot.
I currently have a B.S. in computer science and am currently working as an IT technician. Part of me feels like I'm completely out of my league and should give up on my dream of becoming a Software Engineer. I'm stuck and I don't know what to do. It has been a constant shadow over me ever since I started.
The only thing that helps is having a project in mind, a game, or a website that solves a real world problem, and then learning what you need to finish that project.
I've just started learning programming while I study a bachelor's in IT and I really love it. But I'm kinda having this feeling that there's no real opportunity in my country to do amazingly well, both financially and skills wise, and I have had this experience of feeling like I won't learn or be the best I can possibly be in my country
300ms is what you should expect for devices on wifi, 200ms touch delay is built into the browser and some frameworks when using touch screen, half a second would still be much of an improvement on an Android-based TV web-app
i never had any software classes i am a maintenance guy but theres almost no job for that without using scripts/programming so now i am learning how to code with the help of my boss. really feel like i suck at programming but every year i keep seeing a bunch of progress aswell
Casey, it might not feel like you're making a difference but you do influence people! Listening to your content has made me reexamine my own coding style and practices and has given me a reason to get more familiar with how the software I write runs on hardware. It has also made me realize why I find interacting with so much of modern software such a dissatisfying experience.
Knowing the odd thing about the history of electrodynamics and physics, I did a keyword search and got this quotation lifted from Wikipedia/ Hamilton defined a quaternion as the quotient of two directed lines in tridimensional space; or, more generally, as the quotient of two vectors. A quaternion can be represented as the sum of a scalar and a vector. It can also be represented as the product of its tensor and its versor. /End quotation from Wikipedia Search terms were >quaternions Hamiltonian physics< It basically increased the dimensionality of physics to consider field interactions that were not readily apparent excepting through experimental results. Physics models at some stage became differential equations using this higher dimensionality geometry. As more experimental data came forward, even more dimensions were added during James Clerk Maxwell's time, and then further refinements were done by other great names in physics as we moved into the 20th century and beyond.
Also engineer is supposed to be a title granted to someone that meets a certain standard, not something you give yourself. I'm not saying it has to be university the apprenticeship approach could also work for that
4:34 This, but when you are learning so much new stuff, you get this like every week, day, hour, then rework what you've done, and never get anywhere finish anything.
My probably wrong thought on what could be the cause of Imposter syndrome could be having experienced the Dunning-Kruger effect, and knowing that there is the possibility of there being something you don't know, so you are continuously doubting where on it you are. Though there is probably more to it...
There's nothing inherently wrong about the feelings of inadequacy. It's how you respond to it. When your knee-jerk response is chronic feelings of insecurity, it is either because you are - by a loose definition of the word - a fraud, or you have some unresolved psychological issues that won't ever be solved by "proving yourself" because your broken self doing the assessment on the validity of the proof is a flawed interpreter. You subconsciously know this and rightfully don't believe in its assessments.
People who are actually bad at something thinking they aren't good enough is not Imposter syndrome. Their thoughts are actually aligned with reality. Imposter syndrome is a disconnect with reality where you really are good enough but you feel a crushing weight that you are not good enough to do the job. You might still get the job done, even, but the whole time you have all the negative self talk that you aren't.
I think they talked about everything except the actual point of the tweet. Look, I get the whole "Oh, she is just gatekeeping the engineer title", I was a self taught programmer from age 10. I was scrapping book stores for arcane programming magazines on assembly tutorials for my spectrum zx. And understood nothing. Its not like I was being dumb or anything. It was just that I did not have the basis. 8 years later, the computer science engineering course was a completely different ball game. Standard algorithms and data structures, CPU architecture, digital systems, how a freaking bit get passed through a copper wire, how compilers work, how do distributed systems work, graphics algorithms, ai algorithms, numeric math.... yeah, you are just not going to learn 5 years of intricate subjects, by even 1% in your 6 month Javascript Bootcamp. So I agree with her, Its not that that person can't be of use and do a good job at Javascripting their one pager marketing site. Its that calling themselves an engineer is beyond disingenuous to the complexity people that have the responsibility of building entire frameworks or systems architectures need to have. You are not an engineer, and that is ok. If you have the will to learn you can become one. But you DO have to learn first.
I agree. These people calling themselves "software engineers" is the exact same energy of a fast-food worker referring to themselves as "line chef", someone working at a call-center being called a "communications executive", or the copy-boy at Kostkos being a "reprographics expert". None are "technically" incorrect in the strictest sense of the words, but it is an attempt to project a much higher level of skill/experience than it actually is. It is somewhat deceptive to everyone except others who understand the field and can correctly recognize the distinction of knowing a little JS compared to being an experienced programmer.
30:23 But why do those layers exist? Because we wanted to deliver code quickly and it's hard to do that by writing software for each available architecture hence the layers. So I think it's trade-off between delivering slow code quickly and delivering quick code slowly.
I think it all boils down to the nature and purpose of the software you're working on. If it's meant to land you on the Moon, then clearly it is performance critical and you need to write it as close to the hardware as possible. It's also clear that you will most probably never have to change it. You can afford a slower delivery time in order to get the performance benefit. If, however, it's an eCommerce app you're working on, then, the market being highly competitive, you need a very fast time to market, very fast development cycles. Fast delivery trumps performance in this case.
That's an excuse and a strawman. Nobody is seriously advocating for zero abstraction for major software, or they'd write in machine code. What's being criticized is the lack of cost-benefit consideration on abstractions - and particularly black boxes. Something specialized will virtually always outcompete something generalized - often by a big margin. It's not at all about making modularity or flexibility forbidden. And apart from that, it's also possible to make an API that both makes it really fast and easy to do trivial things, while still allowing low friction with turning it into highly coupled and specialized code to meet the requirements over time. They're just very rare today.
The reason I put "Software Engineer" in my bio is because the first interview I ever had, the recruiter told me specifically that "aspiring software engineer" immediately gave him pause and suggested I change it. I'm still searching for a job, but I'm getting better constantly. I write code every single day. I don't know what else I would call myself other than an engineer.
it depends on the country. Some places to be an engineer you need a license, it's regulated. But in some countries anyone can call themselves an engineer, in that case the title means nothing.
I studied electronics engineering, but I went to a technical school before and learned about software development. And had a couple of internships before my first "real" job when I was an engineer already, and I still felt like an impostor. The more I've learnt that harder has been to get rid of that impostor syndrome actually, as I've had to expand even more. That Tweet is BS and Annie is just dumb
Yeah, I've got >10YoE, relevant university degree, and still struggle with imposter syndrome. Just wrapped up with annual performance reviews. My manager thinks I'm killing it, but it's hard for me to see anything but the failures I've had in the past year
Yeah but you two have formal education, which often implies studying a subject, and then being challenged at that. Software development, as a craft has so many branches, that one cannot expect to ever be good at all. That's where the og imposter syndrome comes from. It's part of learning.
you dont think she has ever experienced people who are legit knew, that got scammed by a bad bootcamp, who think they should know more than they should cuz they paid so much? ooook
The tweet was dead on and you've outed yourself as a scrub. Throwing shade at actual imposters suffering from Dunning-Kruger is completely legit, and we need more of it.
We should push for more rust development with as little dependencies as possible (Including avoiding the standard library as much as possible). There was a time where having 1 MB of memory was considered a lot for an application. Think of all the money that could be saved by using the hardware as efficiently as possible.
I have been self learn python for backed for like 1 to 2 years. And I have been applying for some days no response and i stops focus on more learning then i apply again no response and repeat and become depressed. I think the main reason is my country no one from outside of my country wants to hire a new dev and in my country you need a have a degree so I have no idea what to do
the market is dry atm and you compete against Seniors with 10 years and degrees. No silver bullet. Get a degree or find a commercial project like SurrealDB and start contributing. Do this for a year. If you are good they will notice you.
5:19 I think this stems from the fact that we're always being compared in the corporate world (it's always competitive after all). This goes for all professions and industries, I think
This needs to be seen by every single developer + senior + scrum master and their dog. I am so tired of having the same code that worked one week ago fail in the pipeline because we have 100+ deprecated packages in the latest version of Xcode or Android studio. If the biggest tech companies in the world cannot keep up with maintenance, but I have to spend hours hacking my app into existence even when the actual logic of the code is sound, we have major issues
I think maybe there is a tradeoff between speed to code something and performance of the thing running. Would you rather one great app or two good enough apps? For companies its usually the latter. Its not just cause people are dumb
That’s a fictional trade off. A good example is Google maps displacing the incredibly slow Mapquest software that constantly did whole page reloads whenever changing map navigation and Google maps became extremely profitable. Apple iPhones replacing Microsoft mobile phones are also another great example of how much market share you can be taken from improving end user experience via performance. The major reason why the industry delivers horrendous products to end users while forsaking performance is mainly due to lack of competition. When companies have market power, there’s no incentive to deliver great products and the company can extract rents from end users just because they are serving the best human turd on the market compared to other turds.
In other news, you can get rich in other fields, but they require something called "proper training", which apparently everyone who saw one too many "day in the life of a software engineer" videos will think lowly of. Instead of building/designing homes or saving lives, they'd rather show off what is supposed to be in a proper kitchen despite showing a workplace rec room 😂
The fact you have to descend into borderline madness in order to reach people on ‘X’ is the main reason I don’t have an account. I still get most of the community juice from Reddit. It’s still the fuel that powers my body.
Add to that the fact that the gap between the best and the second best is wider than the gap between the second best and the worst. This means that if you continue to compare yourself with those who are better than you as you get better, the gap between you and them gets exponentially wider. This gives you the intuitive sense that no matter how much better you get, there are levels that are completely out of reach for you, forever.
When I was a junior developer fresh out of bootcamp I had the acute sense that I was in over my head and that I needed to work my ass off to get better. It wasn’t “imposter syndrome.” It was an accurate assessment. If I had ignored that feeling I would have never put in the work needed to become a better engineer.
That same happened to me! Totally agree! Regards from Colombia
Yep, being humble and understanding there is a lot you don't know helps keep you cautious and make better decisions
I was fresh out of university during massive layoffs. I participates in a few hackathons and get a few rewards, but I wasn't an engineer student, so I don't really have a frame of references of how good/skills level of other engineers are.
But I do have the privileges of being from a 'top' university. so, I managed to get a job during that time, it only lasts a year before I got laid off, I feel like I don't have any ideas what I'm doing, I wasn't able to structure code properly for it to be reusable, finding method/utility that already exists in code, trying to understand the business logic in the codebase with 10 million lines of code wasn't easy either. That really hit me, I suck.
HR told me I got laid off because I was "the youngest" "less experiences". I don't fcking believe it, there's no way they would lay me off because of that. It's hard to believe that while having self-doubt about your own skills. why wouldn't they just tell me my performance was bad?
Thanks to that, I now understand why all these 'best' practices matters, why structuring code matter. Why communication and agreement on how to handle code in the team matters and I have so much more to learn, I have to stay fresh even if I already have a job, I should always learn, polish my knowledge so it wouldn't hurt me if I happened to get lay off again.
Indeed, feeling that right now. I've got a lot of things to learn as well.
That's an important distinction here. One of the qualifiers for imposter syndrome is that it has to be perceptual. If you are an imposter, it's not imposter syndrome. Imposter Syndrome addresses something different.
I started programming in 1980's and I still constantly feel like I don't know nearly enough...
That, or you forget things. I used to be super comfortable with SQL. Now that I've been in "DevOps" (lol) for so long, I can barely read SQL.
i mean it is what it is, it's an enormous field where no one can know everything about everything, the real skill is the ability to learn and adapt
@@DMSBrian24 Yes, it requires a kind of personality, with certain hunger for understanding how things work.
@@DMSBrian24 so how linus wrote the linux kernel, Steve Wozniak built the whole apple computer with its hardware and software ? these dudes knew everything, I'm a low iq monkey compared to them.
@@DMSBrian24 Just need to remind companies, HR and Interviewer about that ...
i've heard turbo tax puts the loading screen because the initial version was so fast that users thought it wasnt worth it, or it wasnt doing anything so they intentionally added loading screens and added wait()'s so people felt it was worth 60-100$/year
I heard a guy say he did this for an app which scans for open wifi connections. It was pretty much instant so supposedly people felt it did nothing, and adding a little wait made people more likely to pay for it.
i feel like that sort of thinking should be entirely outdated now.
This is actually a well known effect now. The human perception system requires some fixed time to process input and create an “event” in our mind. If you initiate some task that completes faster than this interval (under about 20 ms, varies slightly by person), you perceive the task as instantaneous (or even occurring *before* you initiated the event) and this can be very confusing. This happens to me now on a daily basis, when I “like” a friend’s message in Facebook Messenger, there’s an audio cue that plays to indicate you have clicked the like. Well, that audio cue plays so fast after I click the like icon that I perceive it as happening *before* I clicked the like button. It’s very unnerving, but because I understand what’s happening I don’t freak out like I might otherwise.
There should be an option to disable this behavior.
@@RobRoss You can learn to get over this, and people would if we just made software that actually ran in minimal time. The perfect example of this is command line programs. We don't question it when command-line programs are instant.
"Don't compare yourself with other people; compare yourself with who you were yesterday."
Also OP's Tweet was spot-on.
One day you are a bootcamp student, and tomorrow an engineer :)
@@omri9325Sometimes... but most of the time they get stuck as Web Devs
Sure. Yesterday I wrote a hello world app. Today, I added a prompt to ask for a name. I’m killing it
@@omri9325 Yup then they push Next.js to the team and have to rewrite the same app twice.
@@fb-gu2er Go get it, king!!
“The difference between a solid 99 and a perfect 100 is more than 1 point.”
-an anime character
huh?
@@DiSiBijoIt means that getting from 98% to 99% is harder than going from zero to 80%. Diminish returns on gain
why use linear scale then?@@ramonsouza9846
@@ramonsouza9846 in other words, improvement in this field is on a logarithmic scale.
@@DiSiBijo O(log n)
I'm fully aware all my old code is likely crap, my current code is likely crap, and my future code is likely going to be crap, just getting progressively less crappy. Humans can't write good code, as long as it ships and it works and it can be maintained, it's good enough. I'm just confident I can continue learning
Casey always seems to have the most grounded, logical, and balanced takes.
I think it was like 2016 when I first heard of Casey. He was doing his homemade hero thing. I had to quit following it. It was some of the most poorly written code I'd ever seen.
That guy would NEVER get trending on social media
The code is made ground up so it definitely can get a little hairy, but was specifically about it do you think is ugly?
Yet he couldn't be more wrong in his clean code video. Dude is a joke with an overblown ego
@@nafakirabratmu What was wrong? Virtual function calls do impact performance.
Ok so I worked at a non-profit bootcamp where imposter syndrome was a thing we had to actively deal with. As far as people comparing themselves, I think it has a lot more to do with their own low self image. People would be getting every question right, building out impressive personal projects, and then saying they didn't feel like they were getting anywhere people someone else had built a "better" project. A huge part of imposter syndrome is not just thinking "oh I am worse than all these people who are better than me." A huge part of it is the feeling of "there is an insurmountable gap between me and the people who are better than me and I will never get to be that good".
The funny thing to me about it from my perspective is basically all of my students were within hours of being the same skill level. It would be like very small things where one student would figure out how to write a lambda in java before the rest of the class and we would genuinely get people showing up to office hours saying that they felt stupid and they wanted to quit because somehow their peer understands lambdas and its so complicated and they will never get it. One pep talk later and like 2 medium articles and they would be caught up. To me it could sometimes be frustrating because people would be crying about other people knowing concepts that take like an hour to learn. I would have to remind people all the time that they should be happy for their friend's growth.
Anyway imposter syndrome in my experience counselling people with it has not a lot to do with an accurate assessment of what you do know. It is an inaccurate assessment on what you don't know that everyone else does. It is a feeling that the things other people know are too complicated for you to ever understand because if you could understand it, you would already know it. When you say it out like that it seems completely ridiculous and I think people who experience these feelings know innately that its somewhat ridiculous, but it does help people (and yourself) when you just say it out loud. Not everyone experiences imposter syndrome, but those that do tend to hold themselves back a lot without some encouragement.
Definitely feel that. I've got an impressive list of personal projects, then RUclips dumps Steam Engine Simulator and CodeParade's 4D Golf into my recommendations and I feel like I know nothing. Best thing to realize is that it's not about what you can do, it's about what you can learn how to do. Personal projects are proof that you know how to put in the effort more than they are showcases of knowledge.
What might be the root cause for people worrying about others? I only focus on myself. I don't care what others can do. I suspect these people were raised wrong by bad parents. They need therapy, regardless.
So something to put a thought to; poor self-image also comes with the fear of failure. That few hours behind isn't necessarily a few hours, if people never type the lines, because they are locked in anxiety, trying to get it right, without screwing up... which... we all know is no big deal.
@@blain20_ I don't think its that deep honestly. Its very natural for people to compare themselves to others in all fields. I am not sure what the root cause of it was or that these people were raised wrong. They were fine upstanding people and you wouldn't be able to tell privately that they were really feeling this way. Honestly after doing it for years it was still impossible for me to predict who was going to have bad imposter syndrome.
Maybe therapy would help. TBH 90% of the time they just needed someone to tell them they were good enough.
@@SeanJMay Yeah. this is probably a big part of it. Fear of failure basically goes hand in hand with it. "I can't do it so I won't even try" is sort of the real underlying feeling and often I could solve it as a teacher by being like "no you are wrong, you can do it"
Honestly the reality is not everyone was innately talented or capable of really going super far as software engineers. That said, the people who felt like they couldn't do it were rarely the actual bottom of the class even though they often thought they were. You were never really able to tell who was going to feel that way until they expressed it to you too. After years I could not predict who was going to confess feelings of imposter syndrome.
The real kicker for a lot of these people and what held them back a lot was that if they got a problem on a test wrong or struggled with something in a lab/homework they really let it stop them in their tracks. "I can't write a function that generates Fibonacci numbers so therefore I must be a failure" and it would usually be like well what's wrong with the code and they wouldn't have even attempted to debug. They just kind of felt pathetic that it didn't work first try. Coding and engineering requires that you fail gracefully often because you won't always get everything right. I really tried my best to convey that to people but sometimes that pain is just deep rooted and after they leave the class I can't be behind them pushing them forever.
28:50
10 frames per second to get data
30 frames per second to show data
7000000 frames per second to analyze data for ads purpose
The problem is all these shortcut programs aim at making programming "accessible" and convince you that engineering is easy. They bank on the high demand for engineers by giving everyone an unrealistic view of what is required to be one, and everyone who finishes these bootcamps is convinced they are now a super genius about to make half a mil a year with their first job as tech lead.... no shit they're gonna feel like an imposter when they either can't complete their first task on the job or can't even pass a single interview to get the job in the first place.
thats so real
I think they missed the point. Calling yourself an Engineer is the problem. Ask a bonded "professional engineer" (Structural, chemical, etc.) what it took for them to earn and keep that title of "Engineer".
@@tconiam Ok ok, software engineering isn't "real" engineering. I get it. Computer science isn't a "real" science. Let's move past the semantics. The words in the title are not the problem. Knowledge work is knowledge work. It involves breadth and depth of experience, creativity and critical thinking to solve problems whose solutions aren't immediately apparent.
You can call us keyboard jockeys if it makes you feel better, but it won't change the fact that so many people are starry-eyed for this profession without understanding what it entails.
Any time Casey is on the stream you know S tier takes are coming. He should have a weekly segment
The way I see it, there are 2 major reasons for imposter syndrome:
1. IT is a huge field with a ton of overlapping subjects, so if you dig deeper than the topmost nanometre level you will always find something you don't know, and being taught to feel inadequate if you don't know something, you're feeling as if you sucked when in fact you may be doing a great job because your area of expertise doesn't actually require you to know stuff deeper than you do (though knowing inner workings of anything really is cool and absolutely something to strive for);
2. You talk to people, some of whom may be younger than you, and they may know or understand something you don't know or struggle with, and that makes you feel like they know more, while in reality they're most likely lacking in some other area(s), but you don't know that and assume they know as much as you do PLUS that thing you don't know. This one is both arrogance mixed with inferiority complex, but it's not that bad.
The biggest mistake people make when the syndrome kicks in is assume they're a fraud, or a bad engineer or whatever and should quit IT together with just secular life in general and become a recluse living in the woods and sleeping on dirt and rocks, while the healthy approach (imo) is "o, dude, it's so cool you know that! Could you maybe take a little time out of your day to try and explain that bit to me, or just throw a link where I can read more about this if you're too busy?"
The way I see it is as follows: it's extremely cool if there are people in my team who possess knowledge I'm lacking, and if they're younger than me, it's even better - that means that at the very least your co-worker is a cool knowledgeable person, which given that that person isn't an arrogant asshole, means that your team's productivity gonna be higher, and if you're very lucky maybe that person shares with you the strategy they used to become so skilled being so young. When you see your place of work as if not a family than at least a group of people with common goals, and realize that each one of you contributes to the overall success of what you're doing, this feeling of inadequacy dissolves real fast, and you should also dissolve your pride (in a bad sense) with it, which will allow you to see the reality for what it is. Your team may be or become your competition, but for the most part, these people are on the same side as you, and you should be working on achieving the best you can achieve as a group, and you as a person should strive to become just a bit better each day. If a day or two didn't provide an opportunity for bettering yourself, try and stretch your self-improvement over a week. Tbh, ironically in that sense, software development resembles going to gym: yes, there will be people bigger than you, almost guaranteed, but that's not a readon to fall into a severe depression, lay down and die; au contraire, it's an opportunity to learn how to become better, and if you want it and play your cards right - also to get a new friend, and one can't have too many friends okay.
Bootcamps exists for people that want to learn parts of the basics and quickly land a job, and since there is a lot of those and a lot of people wanting to land a job with just basic React and Next experience then the average skill level of the industry goes down. Basically, we have way too many juniors - maybe even lower - with little to no experience with pretty complicated technologies, producing code, that they might not understand fully since your average bootcamp is around 6 months long and does not go deep enough on all of its topics.
or bootcamp are just shit in general
There are way more people trying to get web jobs than there are web jobs
@@ZombieLincoln666 or ended up learning ethical hacking to just write shitty report and being a beggar.
Nothing is wrong with new devs
We all had that “aha” moment when we realized that dev is hard and/or not as simple as we thought
And then there’s that realization that nobody knows what tf they’re doing in the grand scheme of things
At the end of the day it boils down to go fuc*king BUILD SOMETHING
You might fail or you might do something ‘wrong’ but that’s how it goes it NEVER ENDS
Besides, how else do you think we got certain inventions today???
They saw a problem or just was ‘playing’ around and BOOM it happened intentionally or unintentionally
Go put your phone down. KEEP LEARNING. Dream, build, and create whatever tf you can imagine
The world is yours man
Peace and much love everybody
ew
> realization that nobody knows what tf they’re doing
That's just you dawg. The kind of insane microprocessor technology that powers our everyday life doesn't just come about from chimps banging together rocks and Javascript.
It's kind of obvious that people have to sell themself as software engineers even if they are still noobies because it's incentivized by the job market. You can't find a job calling yourself a beginner, no, you should call yourself a professional from the first day. Always overestimate yourself, because other people always will underestimate you.
CringedIn polluted our industry
@@zyriab5797 Good Lord do I loathe LinkedIn
For the on-screen keyboard, what's actually stopping us from having a keyboard on the remote like the Nokia phone back in the day? Too complicated?
It's like typing
1 => 1
11 => a
111 => b
1111 => c
22 => d
... and so on.
If you want to type '12', it's 1 2
"Do you know what a scrum meeting is?" "I do, but I don't think you think it is what I think it is."
the answer is poorly phrased. the answerer first acknowledges that he knows with "i do", but then reverts to "i think"
Is it that meeting where people meet up to have cereal dry? Yum yum SCRUM
@@xybersurfer The _"I think"_ is not in a vacuum. With context, it's _"I think (we're talking about different things)"_ instead of simply adding uncertainty to the _"I do"._
@@ultimaxkom8728 replacing with "I think (we're talking about different things)" doesn't form a proper sentence
@@xybersurfer It wasn't meant to, he was describing what those two words were communicating. For Gods sake, apply your brain before engaging with the internet.
It works like school grades. *C* is passing. *A* requires much more work and might get you a pat on the back. Or a gold star.
I would argue that the long term benefits are usually worth it, but most strategies are just trending towards the short term imo.
Whenever I lack the motivation and anxiety to improve, I watch this guy called theprimeagen
literally who?
yeah mainly anxiety tho
It's so hard to keep pushing yourself..
@@MrKKPA hard when you dont need to
Never heard of him.
Bachelors in Computer science did me great - I can reason with most code bases
devs metioned
gottem
Who devs?
@@rawallonus, silly
We love it.
Steve Ballmer wants to know your location
bootcamps are businesses. Theres some good ones, but at the end of the day most are businesses that mostly care about their numbers as proof of concept to generate more business.
College and any form of higher education is a big business too. Even if you live in countries where higher education is free they all want you to go and spend time there since it'll bring them more income
@@owletkami8018 college is a straight up scam for the most part. Unless you really want to pursue a career that requires a professional license or is strongly rooted in academics, it is a horrible idea that most people are brainwashed into thinking you need to be successful throughout your entire childhood. At least boot camps, which are essentially trade schools, you can legit get a 6 figure job out of a 20k tuition and not the other way around.
I SO wish that topics that Casey wanted to do trended enough for me to find them. Ever since I read his discussion with Uncle Bob I went from skeptical to gradually feeling in stronger agreement and now seeking others who also care as much about quality. He pointed out the dogma that had been tingling in the back of my mind for a decade, and I've learned so much from his advice since then. I wish there were many more like him in the public space. I know from experience several clever devs with wisdom gems to share with three digit followers, but Casey is just that much better at serving the information in a great way, when he _really_ wants to. Thanks for having him on again!
There's the Handmade Network and Jonathan Blow's rants, to mention a few. Eskil Steenberg is a genius C hacker. Terry Davis is brilliant if you want to go explore some wilder worlds. The book "C Interfaces and Implementations" is a treasure chest of elegant, utilitarian C.
I LOVE watching experienced craftsmen tear down their own domain. A day doesn't go by where I don't hate on my languages and tools of choice. I also love them, and a defining aspect of that love is honesty and directness, so it's both cathartic and kind of intimate and rejuvenating to unload your frustration. Makeup sex afterwards.
Casey's Handmade Hero series spawned a community (The Handmade Community) that has a podcast, a conference and an number of interesting projects under development.
Like many things I think this boils down to a problem with incentives. When I entered the industry 15 years ago it was fairly difficult to get a job and it wouldn't be high paid even if you had done "all the right things". Nowadays there are a whole host of companies who are hiring people with very little provable experience and starting them on the same salary that you'd get from a skilled tradesman in other industries. This is part of what creates this situation where software development is slower and results in worse products because you have teams which are spending a lot of effort trying to get productive output out of these employees and the companies will keep hiring more developers because maybe 1/5 of them will actually be productive. Most companies don't have a good grasp on the notion that you can have a team of 10 developers where 2 of them are doing more work than the other 8 combined and that some of those developers produce negative work. I think it is important to be empathic and realise that this isn't necessarily the fault of the people who are being hired and they have been told by the industry that they are ready for this role, but I do think that it's unreasonable to think that this would work in the majority of cases. I think what would need to change is that companies need to increase their standards and hire fewer junior developers (or developers who don't have a provable productive track record) in favour of paying more for a smaller number of more experienced developers. While it is difficult to hire senior developers it is not a solution to just get 3 juniors instead.
We have an internal admin panel for some customer facing products that literally takes 5 minutes to load data.
It's been a problem for years and the team responsible refuses to fix it and just cancels your ticket if you try to report any problem with it being slow.
I'm gonna try to quote the rant about slow software to them
I actually had opposite problem when I entered the workforce.
I was expecting to be demolished by the scope of the work, instead I cruised by without effort and started to interview others workers if they had the same.
When I was forced to acknowledge people had problem with what I found too easy, my whole will to improve was gone. And I'm not the best, I'm actually pretty trash. But because HR hires on CV, that is I cannot put in more effort and instantly get promoted to much higher pay especially as business side I'm not that great, I just have little motovation to keep getting better. And that makes for awful habit that beats you in the ass later in life.
Bro got gifted-kid syndrome'd as an adult 💀💀💀
I'd rather be a fool among geniuses, than a genius among fools.
Seems like you've got few choices:
* ask around, not necessary officially, if there's something you can work on (explain your situation); ask for pointers on how to improve your position;
* look for an inspiration/motivation outside of work (contribute or start some projects - keep to the Goldilocks Rule of motivation - something you can complete, with some effort, enjoy the outcome for a moment and then move on to the next one);
* look for another job (this one will always be a welcomed addition to your CV as well as some life experience).
Whatever you do... do not lose the knack! (search Dilbert - "The Knack")
@@marshad82 thanks for helpful advise, life kinda choose for me and decided on the 3rd option. Ironically while the dev team was doing great, nearly always ahead of schedule, the business side made a bunch of mistakes. Well, I'll definitely use the first two advises in the new job, tho I'll wait a bit to see how I fall within first.
Same
In my country, engineer is someone that works with engines. The title is "ingeniero" and it takes you 5 years to get one. Calling yourself "ingeniero" , without having a degree, is title usurpation and it is illegal. Someone that took a JS bootcamp is neither en engineer nor an "ingeniero". A bootcamp transforms an aspirant to an apprentice. And there is nothing wrong with that, my grandpa was a chemist apprentice in a factory when he was 18. After he retired, people (with degrees) came to our house to consult him. It just takes TIME and EFFORT to build valuable knowledge and experience.
Even in English-speaking countries, the term 'Engineer' in many fields is not just a degree but a membership of a specific professional organisation (and a degree is, while common, not always necessary as some also accept demonstrated experience). The key is that the 'Engineer' title tends to require extra accreditation beyond even a degree. Except "Software Engineer" which just means "Sounds better on a CV than 'Programmer'".
Meanwhile, at my workplace I am a 'Technical Officer" which I dislike as it is so clearly serves no greater purpose than the same "Sounds impressive to people I have no desire to impress". I prefer plain old "Technician".
What country are you from? Ingeniero is a title but it means someone who creates things to solve problems.
@@evilbob4540exactly
That's why Latin America doesn't progress
That's arbitrary definition. The latin word "ingeniator" is someone who devices and constructs. This means there's natural talent or cleverness to do that.
its cool how he always leave a single character at the end and the start when highlighting a text. now you cant unsee this
but WHY DOES HE DO THAT. It is driving me crazy
I have a vague memory of some programs when a full line of text is highlighted the window begins to scroll downward and then you lose your spot and a whole paragraph is selected.
He does it on purpose to annoy viewers, and it works.
@@jackschofield7308 he probably only said that with the express purpose of annoying the viewers when they began being annoying about his habits. He probably just has a quirky habit just like we all do
I feel like it has something to do with his tool chain setup. Like he has something running that will auto copy any full lines of text copied into his buffer or some shit
a scrum is a dozen sweaty muscly men linking arms and shoulder charging into a push-of-war in order to win the egg on the grass
Accurate description
@19:00 We do have a section in our dev interviews to ask if they have ever used the management tools we use every day, but it's only to get a sense of how much one-on-one training they might need during onboarding. They could answer "no" to every question in that section, and still get the job, because we're only looking for ~70% correct answers in the technical interview, and a ~B in their practical dev test. (for entry dev candidates).
We also give them a little slack if their dev test was really good, and we can tell in the interview they might KNOW what they're doing, but they don't know the "vocabulary terms" of what they're doing. They will learn these things over time with guidance from the team.
Knowing "your vocabulary" is more important for Mid+, because it means you have a solid grasp the design/dev principles you're using and why you're using them. But not as important for Entries.
I feel like this perspective is what I've been looking for as I'm trying to find my way into programming and software engineering. A LOT of boot camps just default to javascript, and with what little I did learn, they never went over the WHY and the HOW of what we are doing and how that represents PHYSICALLY or MEASURABLY. I appreciate the content and the philosophy!
Honestly, I'd recommend trying out a uni course in Computer Science if it's feasible. It'll cover a pretty broad spectrum of topics, but so much of it translates between platforms, languages and problem spaces. It put me in a position where, even when I don't know a something, I at least feel like I can educate myself on it and learn as needed.
That is, presuming you don't live in an area where you have to sacrifice your firstborn to be able to pay for uni fees.
@@AmazingPotatoFarmerThis is worst advice I ever heard. You don't need Uni to learn programming. I started when I was 10 years old, never took any course, I just read book and later used web search.
If you want to learn about the full path to making a basic game starting from logic primitives nand2tetris is the course. It will teach you how to make a game with a custom language on a custom emulator written based off of a custom hardware implementation made of basic building blocks made out of logic primitives. And all of it is done by you.
good luck getting a job without a degree and experience in this market@@wiktorwektor123
@@wiktorwektor123Not the *WORST* advice *ever* but yeah I don't think it's entirely necessary.
Even if you want to learn the core low level, component level stuff, there's better resources online than in school. This will probably always be the case for fields like programming.
i studied for three years, and have worked in the industry for 1.5 years. this video is kinda like the therapy sesh i needed. time to write some go poetry
exactly 100% I feel the same about performance and I'm working on it very hard to convince the whole company (and it starts to shift in the right direction)
I get imposter syndrome after I change jobs. It's not because I have lots of new stuff to learn while the others are good at it, it's because I have just been through lots of interviews where I have to sell myself while minimizing negative points. It feels so fake to mainly highlight my positive sides and what I know while minimizing or avoiding negative sides and where my skills are lacking, so after that process, I feel like such an imposter until I have landed and gotten that process far behind me.
One way to make a performance culture is to force all of your developers to QA their software with the lowest power cap their laptop's SoC supports.
I'm very "back to basics" these days with my programming. I've been retrocoding, and also looking at the old books and software that I had as a kid. I believe the only thing "wrong" with the new devs is that we kept making a worse platform every time we went farther away from the hardware. There was a great hope way back when, that "the platforms we have now aren't perfect but we'll fix them up and have ideal code for this type of problem", and that really never happened. Instead we added more middlemen, and crowded around whatever they sold, and software became path-dependent in very arbitrary ways. A large share of it started with hardware being marketed to software development companies to make third-party products, not for end users to program directly. Then the software companies, in turn, sought out monopoly structures. The trend accelerated as we went online and into the smartphone era. It's the producer-consumer model(the economic one, not the Dijkstra problem) that is broken, because it keeps everyday people out of the discussion.
So someone who enters into this field of working with computers now is more likely than not to *not* know how to concretely talk to them, they just know a particular priesthood of "how things are done" and it worked for them, but they may not be capable of challenging the high priests. You have to be seriously comfortable with throwing out the whole ecosystem and doing away with any assumptions Unix made way back when, to actually get to where you can see computing with clarity again, because the alternative is to just chip away at the layers and make very slow progress for years and years to know "oh, it has a fribble here because of the gribgrab", when the fribble and gribgrab are inventions that the original coder thought, a year later, "oh, I could have done that much better."
For all the development we've done and how expensive it's been, if something happened that made us have to start over, like some dramatic political mandate, getting back to something roughly like now would not take all that long. Years, yes, but probably less than 20.
Yeah its all "lets make a language and compiler like C but easier to use and call it XYZ" and it ends up a mess and then its "lets make a language and compiler like XYZ but easier to use" and it turns into moosh when you need to profile performance or limit memory usage.
Immediately caching all the surrounding stuff locally must have been expensive on the delivery side as well. I'd argue that a short delay in the 50-200ms range, to 'confirm' that you're intentionally hovering that particular element and want a preview is both bearable and - just gut feeling - getting the user to be more purposeful in their interaction with your software may also lead to a better lock-in towards a purchase funnel
34:02 It's been 4 months bud. It's time for that quarterly Casey call! (I love all of Casey's videos so I'm always hoping for more people to pester him into being around more).
This was an wonderful video. You're video style is typically pretty high energy and fast paced, and while I've grown to enjoy a number of your videos, I feel like for me this is perfectly balanced. Casey is one of my programming heroes and I am looking forward to hear you guys talk more :)
Even though I've been a developer for decades, I totally understand impostor syndrome. It isn't a matter of comparing myself to any specific other developers, it's a matter of "Am I earning my salary?". Most of the time I'm quite confident that I'm doing a great job compared to what I'm paid, but then I'll hit a major snag on some specific project. There was one project which I was stuck on for weeks, and I was actually ready to voluntarily quit because I just couldn't figure out why I was stuck. Luckily my manager happened to be out that day, so I while I was waiting for him to return I went through all the config files, and found one very simple one-word config file which was *totally* *absurdly* wrong. I hadn't looked at that file because the correct value was so obvious that I couldn't imagine I had gotten it wrong. I fixed the value, and everything worked so I didn't volunteer to quit. 🙂
7 minutes in, what a fantastic take so far. very inspiring
casey and jblow are the modern flag bearers of artisanal programming and they deserve to be heard and respected for their efforts
I spend most of my time logged out of google / youtube. Logged back in just to comment just how excellent the conversations with Casey are. Please have him on more!
One of the best things you can compose into any learning process (which to an extent is and should always be any properly implemented human activity) is getting used to "not knowing stuff," because while you give excessively worried attention to your knowledge deficiency you simultaneously detract from your capacity to fix it. The perceived lack of gaps in understanding, on the other hand, does nothing but indicate stagnation - that's where you should be worried...
"pYtHon iS tHe bEsT prOgRaMmiNg LaNgUagE!!! 🤤"
How to detect a silly noob dev
:(
python is a good language for glueing c libaries together
@@randomsnow6510 python is a bad language for anything, and you should feel bad
This is one of the best motivation videos you have made. Very useful perspective.
My LinkedIn title is "*void". I finished mechanical engineering high school then did bootcamp, after that I had some internships and people seem very attached to their titles in the corporate environments, while the best programmer I met never used any sort of title but his name.
Big problem is a lot of bootcamps and training programs online are there to help get jobs, not necessarily succeed in keeping the job or how to do the job the best, it's all just: LETS GET THAT JOB...cool, for 3 months and then you, potentially, are a weight on the teams neck cause you can't carry your weight. Team work is one thing, being a millstone is another.
Camps should use group mechanics, perhaps.
Not even to get jobs. Hire rate for bootcampers is pretty poor actually. Bootcamps are there to monetize the low-effort / high-money mindset fed by "you don't need collegue" Rich-Dad Ivy Leaguers narrative .
"MoveableObject" is actually one right way of doing it. It just indicates that this object has a transform (or even a previous transform state in addition in order to be natively interpolated) and can be placed in the world. That is very fundamental to most objects. Would be curious to know why you think it is a bad idea.
I'm also a bit confused :) Maybe we don't get the reference? Unity for example doesn't create a separate class / inheritance chain for "movable" objects since it uses a component model and you attach behaviour script to gameobjects in order to change the behaviour. Though Unity has the Rigidbody component which comes from the physics system. Whenever you want to have collisions or trigger interactions, your GO needs to have a Rigidbody component. You can move any other gameobject as well, however GOs with colliders should never be moved unless they are part of a rigidbody. Moving individual static colliders had a horrible performance impact in the past (as the whole world collider was rebuild when such a static collider was moved). Afaik the performance issues have been reduced, but it's still not a good idea to move a collider without a rigidbody as collisions would not work the way they should.
In Unity you can actually specifically mark objects as "static" so several systems can perform optimisations (static batching, lightmap calculations, etc). Though static objects really should "never" move.
@@Bunny99s Yeah, performance isn't even affected here in general as MoveableObject can be a non-polymorphic base class, being stored in place in addition (means the transform is a direct struct and not a pointer to something). So even if it acts as a base class in a oop paradigm, it is still the right way of doing it. Unreal Engine actually does just that, it's called an "Actor". Same semantics as "MoveableObject". I think "MoveableObject" is even more descriptive than "Actor", and thus a better name. So mocking MoveableObject approach is essentially calling Unreal Engine creators noobs, lol.
hoping to see Casey more often, Prime. you two make a very good duo. cheers!
2 years in to working as a dev. I know deep down I will never be great...maybe not even good by many peoples standards. But I will better than I was before and hopefully good enough to have a decent career for as long as I am doing it.
"What you need top post is something ambiguous and slightly incendiary."
Yup, my co-workers and I always used to say: "If you get online and ask how to do X with technology Y, you'll get told to RTFM. If you, instead, say...'Y sucks, it can't even do X!' you'll get 100 people telling you exactly how to do what you're trying to do."
While I agree that the quality of software today is not great, it’s a bit rose-tinted to look back at old software and say that it was some kind of bug-free utopia.
There is some thing that society seems to have where we always think we’re living the worst time for whatever thing we’re assessing.
There’s some kind of mental block to seeing improvements over time.
Getting to comment on Casey video is it's own reward. Fun having you guys hangout.
this has became a channel where game and web developers finally sit together talking about java programmers
This is one of your best interview videos. One thing that has become obvious to me, is that software doesn't need to be well designed or well written for a company to be financially successful. The nature of software is that it can be quickly fixed and fixing it is cheaper than building it perfectly in most cases. Sadly.
A friend of mine that is a software and programming book author, literally just recycles existing books contents but changes it enough so that it is unique. Nine times out of ten, if the example doesn't make sense or something isn't right, that's the reason: it's recycled and poorly understood by the author.
I wouldn't have believed this until I actually heard it said plainly in just that way from the horse's mouth.
It makes sense. It reminds me how folklore is passed down among generations too I think. stuff gets lost in translation.
Prime and his friend give some good advice, but they are talented people talking. I would say focus on small but constant gains, study the basics daily on a schedule, always be building to get practice, get a sense of accomplishment before you get feedback but only pay attention to the ones that include a way to address each critique and eventually you will become proficient, more confident and a good team player that gets payed.
There is only one thing better than being able to do something and that is understanding how it works.
For a long time companys were having a hard time finding enough competant engineers. So they started to drift towards making engineering more accessable rather than making their applications better.
I think the quality of software is going to go way up over the next few years assuming we dont have an economic boom that surges us way out of this recession fast. Development though will be difficult to break into
Not far in, but when he said he didn't relate to imposter syndrome I immediately had a gut reaction of negativity. I let the man cook and I feel inspired, I'm good at what I do but not even close to the best. I know what I'm doing and am capable of far more than a lot of people but I have miles to go on my journey.
Yeah same, he's making it about comparison when for me it's more about "oh fuck, I'm assigned this bug on the kanban board and I literally don't know how to begin"
Oh and he just said "I've never felt like I didn't get better year after year" so he actually can't understand this feeling, because for most folks I've aligned with in terms of experiencing impostor syndrome don't experience that feeling of leveling up, it's more like "fuck i baaarely got through that year" year after year after year
I never had a senior or even just another dev around to help point me in the right direction. I've had to learn how to not do things the hard way. Early in my career I changed jobs every few years and didn't get to deal with my bad decisions. Then I worked at a place for 5 years and during that time I had to deal with some of my bad decisions. Eventually I had to deal with code I wrote 10 years ago. When I started to deal with my own bad decisions I started to realize that I need to think differently about what and how I'm doing something today because there is a decent chance that I will have to deal with it in the future.
You can't do anything perfect, but the quality and performance of what I built went up a huge amount because I'm not just writing something to work for today anymore. A little goes a long way and assuming that in the future I will be the one that needs to deal with what I write today has helped me improve a lot.
I currently have a B.S. in computer science and am currently working as an IT technician. Part of me feels like I'm completely out of my league and should give up on my dream of becoming a Software Engineer. I'm stuck and I don't know what to do. It has been a constant shadow over me ever since I started.
The only thing that helps is having a project in mind, a game, or a website that solves a real world problem, and then learning what you need to finish that project.
I've just started learning programming while I study a bachelor's in IT and I really love it. But I'm kinda having this feeling that there's no real opportunity in my country to do amazingly well, both financially and skills wise, and I have had this experience of feeling like I won't learn or be the best I can possibly be in my country
300ms is what you should expect for devices on wifi, 200ms touch delay is built into the browser and some frameworks when using touch screen, half a second would still be much of an improvement on an Android-based TV web-app
@ThePrimeTime please make this a regular chat, i really enjoyed this discussion Casey is amazing
i never had any software classes i am a maintenance guy but theres almost no job for that without using scripts/programming so now i am learning how to code with the help of my boss.
really feel like i suck at programming but every year i keep seeing a bunch of progress aswell
I would love to make whatever I make more performant. But managers are still convinced that the faster something is programmed, the better....
Casey, it might not feel like you're making a difference but you do influence people! Listening to your content has made me reexamine my own coding style and practices and has given me a reason to get more familiar with how the software I write runs on hardware. It has also made me realize why I find interacting with so much of modern software such a dissatisfying experience.
As someone in university studying SE, I think I needed to hear this. Thank you :)
Knowing the odd thing about the history of electrodynamics and physics, I did a keyword search and got this quotation lifted from Wikipedia/
Hamilton defined a quaternion as the quotient of two directed lines in tridimensional space; or, more generally, as the quotient of two vectors. A quaternion can be represented as the sum of a scalar and a vector. It can also be represented as the product of its tensor and its versor.
/End quotation from Wikipedia
Search terms were >quaternions Hamiltonian physics<
It basically increased the dimensionality of physics to consider field interactions that were not readily apparent excepting through experimental results. Physics models at some stage became differential equations using this higher dimensionality geometry. As more experimental data came forward, even more dimensions were added during James Clerk Maxwell's time, and then further refinements were done by other great names in physics as we moved into the 20th century and beyond.
Also engineer is supposed to be a title granted to someone that meets a certain standard, not something you give yourself. I'm not saying it has to be university the apprenticeship approach could also work for that
In many countries the title of „engineer“ is clearly defined. In most cases it involves having a degree in STEM.
4:34 This, but when you are learning so much new stuff, you get this like every week, day, hour, then rework what you've done, and never get anywhere finish anything.
Prime should do a podcast with this guy!
How do you call this?
@@samanthaqiu3416 bugbusters?
We have to say engineer because we won’t get hired if we don’t day that. “Please hire me I’m a noob” doesn’t sound so good.
That first 10 minutes was the pep-talk I needed. Thanks.
Me used to program back when Grog make fire with stone and branch... before silicon and soft hands.
Casey straight up rationalized self-confidence as a concept in that imposter syndrome section
My probably wrong thought on what could be the cause of Imposter syndrome could be having experienced the Dunning-Kruger effect, and knowing that there is the possibility of there being something you don't know, so you are continuously doubting where on it you are.
Though there is probably more to it...
One in that position could also realize that they are reaching out to google, stack overflow, and tutorials for more things than they would like
There's nothing inherently wrong about the feelings of inadequacy. It's how you respond to it. When your knee-jerk response is chronic feelings of insecurity, it is either because you are - by a loose definition of the word - a fraud, or you have some unresolved psychological issues that won't ever be solved by "proving yourself" because your broken self doing the assessment on the validity of the proof is a flawed interpreter. You subconsciously know this and rightfully don't believe in its assessments.
Very good advice and also century old advice "don't compare yourself with others"
People who are actually bad at something thinking they aren't good enough is not Imposter syndrome. Their thoughts are actually aligned with reality. Imposter syndrome is a disconnect with reality where you really are good enough but you feel a crushing weight that you are not good enough to do the job. You might still get the job done, even, but the whole time you have all the negative self talk that you aren't.
The best collab since Prime + Thor
The videos with all three were heaven.
I think they talked about everything except the actual point of the tweet.
Look, I get the whole "Oh, she is just gatekeeping the engineer title", I was a self taught programmer from age 10. I was scrapping book stores for arcane programming magazines on assembly tutorials for my spectrum zx. And understood nothing. Its not like I was being dumb or anything. It was just that I did not have the basis.
8 years later, the computer science engineering course was a completely different ball game. Standard algorithms and data structures, CPU architecture, digital systems, how a freaking bit get passed through a copper wire, how compilers work, how do distributed systems work, graphics algorithms, ai algorithms, numeric math.... yeah, you are just not going to learn 5 years of intricate subjects, by even 1% in your 6 month Javascript Bootcamp.
So I agree with her, Its not that that person can't be of use and do a good job at Javascripting their one pager marketing site. Its that calling themselves an engineer is beyond disingenuous to the complexity people that have the responsibility of building entire frameworks or systems architectures need to have. You are not an engineer, and that is ok. If you have the will to learn you can become one. But you DO have to learn first.
I agree. These people calling themselves "software engineers" is the exact same energy of a fast-food worker referring to themselves as "line chef", someone working at a call-center being called a "communications executive", or the copy-boy at Kostkos being a "reprographics expert". None are "technically" incorrect in the strictest sense of the words, but it is an attempt to project a much higher level of skill/experience than it actually is. It is somewhat deceptive to everyone except others who understand the field and can correctly recognize the distinction of knowing a little JS compared to being an experienced programmer.
I felt a bit like an impostor when I started out, but it wore off after a few months when I realized that I'm the GUY
Writing code like 20 years, but still have weird fillings when app starting with no errors from first run.
30:23
But why do those layers exist? Because we wanted to deliver code quickly and it's hard to do that by writing software for each available architecture hence the layers.
So I think it's trade-off between delivering slow code quickly and delivering quick code slowly.
Of course there is a difference: one of those two approaches will bite you in the ass later.
I think it all boils down to the nature and purpose of the software you're working on.
If it's meant to land you on the Moon, then clearly it is performance critical and you need to write it as close to the hardware as possible. It's also clear that you will most probably never have to change it. You can afford a slower delivery time in order to get the performance benefit.
If, however, it's an eCommerce app you're working on, then, the market being highly competitive, you need a very fast time to market, very fast development cycles. Fast delivery trumps performance in this case.
That's an excuse and a strawman. Nobody is seriously advocating for zero abstraction for major software, or they'd write in machine code. What's being criticized is the lack of cost-benefit consideration on abstractions - and particularly black boxes. Something specialized will virtually always outcompete something generalized - often by a big margin. It's not at all about making modularity or flexibility forbidden. And apart from that, it's also possible to make an API that both makes it really fast and easy to do trivial things, while still allowing low friction with turning it into highly coupled and specialized code to meet the requirements over time. They're just very rare today.
The reason I put "Software Engineer" in my bio is because the first interview I ever had, the recruiter told me specifically that "aspiring software engineer" immediately gave him pause and suggested I change it. I'm still searching for a job, but I'm getting better constantly.
I write code every single day. I don't know what else I would call myself other than an engineer.
a developer????
Why call yourself something at all?
Code monkey, Machine whisperer, Arcane formulator
you are not an engineer until 3, 4 yoe. if you have less time than that you are just a programmer, a software developer
@@bandr-dev it's not a matter of years it's what you do. If you're just making frontend or CRUD apps I would say your a web developer and not a SE
it depends on the country. Some places to be an engineer you need a license, it's regulated.
But in some countries anyone can call themselves an engineer, in that case the title means nothing.
*opens Task Manager*
HACKING
I studied electronics engineering, but I went to a technical school before and learned about software development. And had a couple of internships before my first "real" job when I was an engineer already, and I still felt like an impostor. The more I've learnt that harder has been to get rid of that impostor syndrome actually, as I've had to expand even more. That Tweet is BS and Annie is just dumb
Yeah, I've got >10YoE, relevant university degree, and still struggle with imposter syndrome.
Just wrapped up with annual performance reviews. My manager thinks I'm killing it, but it's hard for me to see anything but the failures I've had in the past year
Yeah but you two have formal education, which often implies studying a subject, and then being challenged at that.
Software development, as a craft has so many branches, that one cannot expect to ever be good at all. That's where the og imposter syndrome comes from. It's part of learning.
Women can't code anyway so don't take it personally.
you dont think she has ever experienced people who are legit knew, that got scammed by a bad bootcamp, who think they should know more than they should cuz they paid so much?
ooook
The tweet was dead on and you've outed yourself as a scrub.
Throwing shade at actual imposters suffering from Dunning-Kruger is completely legit, and we need more of it.
We should push for more rust development with as little dependencies as possible (Including avoiding the standard library as much as possible). There was a time where having 1 MB of memory was considered a lot for an application. Think of all the money that could be saved by using the hardware as efficiently as possible.
I have been self learn python for backed for like 1 to 2 years. And I have been applying for some days no response and i stops focus on more learning then i apply again no response and repeat and become depressed. I think the main reason is my country no one from outside of my country wants to hire a new dev and in my country you need a have a degree so I have no idea what to do
the market is dry atm and you compete against Seniors with 10 years and degrees. No silver bullet. Get a degree or find a commercial project like SurrealDB and start contributing. Do this for a year. If you are good they will notice you.
5:19 I think this stems from the fact that we're always being compared in the corporate world (it's always competitive after all). This goes for all professions and industries, I think
This needs to be seen by every single developer + senior + scrum master and their dog. I am so tired of having the same code that worked one week ago fail in the pipeline because we have 100+ deprecated packages in the latest version of Xcode or Android studio. If the biggest tech companies in the world cannot keep up with maintenance, but I have to spend hours hacking my app into existence even when the actual logic of the code is sound, we have major issues
I think maybe there is a tradeoff between speed to code something and performance of the thing running. Would you rather one great app or two good enough apps? For companies its usually the latter. Its not just cause people are dumb
That’s a fictional trade off. A good example is Google maps displacing the incredibly slow Mapquest software that constantly did whole page reloads whenever changing map navigation and Google maps became extremely profitable. Apple iPhones replacing Microsoft mobile phones are also another great example of how much market share you can be taken from improving end user experience via performance.
The major reason why the industry delivers horrendous products to end users while forsaking performance is mainly due to lack of competition. When companies have market power, there’s no incentive to deliver great products and the company can extract rents from end users just because they are serving the best human turd on the market compared to other turds.
In other news, you can get rich in other fields, but they require something called "proper training", which apparently everyone who saw one too many "day in the life of a software engineer" videos will think lowly of. Instead of building/designing homes or saving lives, they'd rather show off what is supposed to be in a proper kitchen despite showing a workplace rec room 😂
SE is not a formal field... computer science is not SE.
@@ea_naseer SE is after all, a subset of Computer Science. Good to know everything under the Computer Science sun.
The fact you have to descend into borderline madness in order to reach people on ‘X’ is the main reason I don’t have an account. I still get most of the community juice from Reddit. It’s still the fuel that powers my body.
Casey is awesome love his underlying memory detail video! He has tons of insight!
The "pay for the line of code" was the worst practice ever, that affected many parts of long-living applications
Add to that the fact that the gap between the best and the second best is wider than the gap between the second best and the worst. This means that if you continue to compare yourself with those who are better than you as you get better, the gap between you and them gets exponentially wider. This gives you the intuitive sense that no matter how much better you get, there are levels that are completely out of reach for you, forever.
I have only worked at startups where bad developers get fired. We simply can't afford them.