Vulnerability & Decisionmaking
9 күн бұрын
How ADHD Feels
2 ай бұрын
Your Code Review Sucks
3 ай бұрын
Always Ask Why
3 ай бұрын
Don't Model the Problem
3 ай бұрын
Пікірлер
@macchiato_1881
@macchiato_1881 11 сағат бұрын
I think cleanliness is considered an important metric in large production codebases because companies are constantly asking for new features, and that may result in constant refactoring, having to integrate old features with new ones, coupling and uncoupling features, etc. While it is sad that performance is not an important metric as it used to be, I guess that's the price you pay for the constant need to accomodate the users' demands.
@web3simplified793
@web3simplified793 12 сағат бұрын
just actually finished watching this here wanted to give my opinion as a non senior engineer ahha. (i hve only have 2 years professional experience lol so what you are about to read litreally has no credability its litreally hust my take haha,) but want to give my take none the less i think becoming a senior engineer is alot as much about your non-coding skills such as intuition and wisdom as your coding skills themselves. Like i think if your coding for long enough youll eventually just develop the programming quality needed to meet the "standards" of a senior developer, so i think its irrelevant to value this metric as a barrier to the title, because if your someone who is anyway intrested in development, its just a matter of time before you get good enough. It might take some people 5 years, might take others 10, so to me i I think, from what i have observed anyways, the real metic is your people/wisdom/leadership and organisational skills. for example how well do you know the entire companys dev operation, not just the FE stack, or the BE stack, but are you clued in with whats being built in the different teams, how they fit in together and what problems are/can/will arise that you have the foresight to see and plan for. i think also engineers who give good feedback in code reviews, do code review without nessecarily being asked to do, things like that. For example where i work. theres this one guy whos like or lead dev.and in terms of raw skill i would say 4 or 5 other devs match him. but this particular guy is in a league of his own just becaus of how on top of everything he is and how clued in he is with every facet of whats going on. I do realise that the definition of senior may vary here, as i guess what i describe is someone who is staff level or tech lead,
@vasiliigulevich9202
@vasiliigulevich9202 12 сағат бұрын
You provide examples of natural learning from job experience and then suggest to learn in off-hours. This is a hypocrisy at best. Also, modern tooling is specifically designed so that developer would not need to learn anything. It would be counterproductive to learn anything that is not expected in you job. As long as developer does not hesitate to dive deeper in the stack they use, they would train and solve the low-level problems you discuss with time. Learn what is necessary for your day job and eventually, as lower level problems arise your would with necessity get lower level expertise too. I would suggest to learn organically by rotating projects instead, but I'm not sure today's market is predisposed to provide learning opportunities. This exactly why developers are "senior" - they had time to stumble upon and learn actually useful stuff.
@davidhart1578
@davidhart1578 12 сағат бұрын
To be fair I do ramble a bit, but that's exactly the problem I'm getting at. I've had the opportunity to learn on the job, but I'm not so sure that these fundamentals shake out of a modern developer's day to day. As the abstraction grows it becomes harder to see the underlying principles. React for example is written as if it's synchronous code on the surface level, which abstracts away the actual update & rendering loop. A deeper dive on it helps to understand what's going on, but unless you have a very specific problem it's easy to just ignore it completely. The last thing I want to do is scare away junior developers, so I appreciate the feedback. I should probably have been clearer that the advice is mostly intended for people who have been in the industry a few years and want to move into a senior role. Learning outside of work is a pain, but it can help with those transitional phases.
@vasiliigulevich9202
@vasiliigulevich9202 12 сағат бұрын
@@davidhart1578 I guess the question now is how to determine whether a problem should be ignored. My mentors have beaten into me, that there are problems not worth solving. If we combine this with your recommendations, we could come up with a principle - "treat minor problems as learning opportunities" (because you get paid for solving major problems and learning unrelated stuff may be hard to justify). I do actually practice solving low-priority bugs in OSS we use for work in my off-hours, so this looks like a sound advice. Can't recommend this for everyone though.
@web3simplified793
@web3simplified793 13 сағат бұрын
thats an irish accent if im not mistaken. great to find another irish developer channel. (great video btw)
@kenpls
@kenpls 13 сағат бұрын
I wish I was born 20 years earlier
@vasiliigulevich9202
@vasiliigulevich9202 13 сағат бұрын
Obviously clarification about optimality is a trick condition! If the path is not important return full field traversal constant that would clean the whole field independently of where the dirt is. There it no code more elegant than no code!
@Taddy_Mason
@Taddy_Mason 15 сағат бұрын
9:41 is when i hit subscribe
@Tau244
@Tau244 16 сағат бұрын
Great video. I’m an electrical engineering student and understand none of the jargon, but your way of conveying ideas made me sit through the whole video. I have trouble committing to problems that I have doubts in and your video is a great reminder that any consistent effort is worth while.
@trontrontrontron4
@trontrontrontron4 17 сағат бұрын
I have a similar trajectory in my development career and it was the same working on shitty codebases, stepping up to do things i did not know how to do, and being lucky of having more senior programmers that would help me reason through issues. Nowdays so much focus is put on react and all the framework i rarely hear people discussing actual things they are building and the deeper problems they are solving.
@zerotoanime3953
@zerotoanime3953 20 сағат бұрын
100% agree with this.
@PhysicsITGuy
@PhysicsITGuy 20 сағат бұрын
This is great. I totally agree. I'd rather have one big function than twenty one-liners across three files. Clean code ignores "interface complexity." If your code only has one or two functions, then you know what to call and how it works. It is easier to use that code, because there are only one or two interfaces that you need to understand. The most difficult libraries to use have tons of little helper functions that all do slightly different versions of the same thing.
@redhotbits
@redhotbits Күн бұрын
many seniors are junk
@Duconi
@Duconi Күн бұрын
It's funny that this design flaw of React is the issue here. If you had used Vue you would probably have used a computed property here anyway, because it's used there all the time and Vue knows what you used where, so it can rerender only components with an actual change. But even though it is a general design issue of React, I wouldn't say, that it is necessarily a problem in this component. This component could be wrapped in a useMemo as a whole. It could also be calculated in the useEffect, because there it's changed.
@user-vo4xl9ue4t
@user-vo4xl9ue4t Күн бұрын
Hey, appreciating your input on these issues as another Irish software dev. It's interesting that your learning experiences have become less and less possible over time. The idea of struggling for months to implement a single pipeline is a bit mad as it isn't possible as a junior dev these days. It is sad because it's clearly important to struggle and look for instruction, these experiences are what make you as a software dev.
@salembeats
@salembeats Күн бұрын
The one issue with this is that there’s always another layer. You can’t just say “learn the fundamentals” indefinitely without burning through rabbit holes all the way down into quantum physics. Be a bit curious, but at some point you have to say “this is good enough”. Have some interest but don’t let your curiosity consume you.
@Salantor
@Salantor 16 сағат бұрын
You can't, but you can always see fundamentals as "something one or two levels lower than now". React => Vanilla.js, Tailwin => CSS, Axios => Networking etc.
@TKGZONE
@TKGZONE Күн бұрын
This guy pretty much said be a whole IT department
@Websitedr
@Websitedr Күн бұрын
The best way I can explain career progression is this: I want to be part of the meeting. Do I need to be part of the meeting. Just give me a summary of the meeting.
@user-vo4xl9ue4t
@user-vo4xl9ue4t Күн бұрын
Your example was excellent in explaining the issue.
@topsecretjony
@topsecretjony Күн бұрын
Mooore
@weiiswurst
@weiiswurst Күн бұрын
There is another important issue you missed: You round before accumulating! A user with 10 projects and 55 minutes in each would get 0 hours worked here. The code is not just slow, its wrong!
@ShehabEllithy
@ShehabEllithy Күн бұрын
"Which I won't comment on" is hilarious
@cunningham.s_law
@cunningham.s_law Күн бұрын
making design decisions has a cost choosing popular stuff is a good and fast heuristic choose your battles
@zuniga325
@zuniga325 Күн бұрын
14:36 The issue I have with your statement is that no one knows what a job entails until you get there. Like your plumber example the more exposure a journeyman gets, the more prepared they are for complicated tasks. Part of the journey to Master is set of skills that is industry standard people are required to know to receive that designation. The problem with software engineering is that there is none of that. On top of recruiters and hiring managers don't know how to designate certain standards based on certain levels of experience to adequately assess people.
@davidhart1578
@davidhart1578 Күн бұрын
Very good point. Repetition isn't something we emphasize in the industry, but there is a confidence that comes with doing something until it becomes second nature. I've set up cloud services before, but I'm not doing it regularly so it's always a bit daunting. I'm sure if I spent a while in a pure ops role it would be no problem at all. I definitely wouldn't recommend someone try to learn everything at once. Maybe 2 years of getting to grips with regular development tasks is a good base before branching out, around the time you go from "junior developer" to "developer". The hiring one is also a pain, it's the old classic, "it says here you have 5 years as a web developer, but do you know HTML?"
@PhysicsITGuy
@PhysicsITGuy 2 күн бұрын
I see it as an opportunity. Knowing the fundamentals is powerful, but, as always, you need to take initiative to learn them.
@AB_AB
@AB_AB 2 күн бұрын
Can't relate. Love the wife. Love react. Love css.
@mahdiaghaei8154
@mahdiaghaei8154 2 күн бұрын
Amazing talk! Thank you for sharing🤝🏻
@ChrisAthanas
@ChrisAthanas 2 күн бұрын
Ah yes, "Blog Driven Development" Clour chasing dreams of infinite expansion chasing clout
@ChrisAthanas
@ChrisAthanas 2 күн бұрын
Im moving away from Agile and switching to Adventure Driven Development Based on the ideas from AD&D
@ChrisAthanas
@ChrisAthanas 2 күн бұрын
Ah yes "Book Driven Development" of Clean code I talk about this in my free course how to program from the ground up on my channel
@ForChiddlers
@ForChiddlers 2 күн бұрын
This is so fun... a javascript senior😂😂😂... sorry
@JohnTyree
@JohnTyree 2 күн бұрын
I think you're right, but not because people don't want them or can't use them and not because people don't want or can't use junior engineers either. There seems to be no path from junior to senior for most people. If you get really lucky and work somewhere that gives you space and time to grow and the company actually has problems that you will learn something from solving, then you'll do well. If you end up consulting on WordPress sites or whatever then you probably won't. That's really it. Other jobs are similar. You can't become a foreman on a construction site by just installing people's bathroom doors for ten years.
@jamm_affinity
@jamm_affinity 2 күн бұрын
Programming is increasingly becoming a great hobby and a horrible career. You are expected to live, eat and breathe software. You are expected to spend a great deal of time outside of work keeping on top of new developments. Many people don't take into account _why_ they feel a compulsion to continuously learn new things as a software developer. It's usually not something you actually want to do (although many of us fooled ourself into thinking that), but rather something being done to avoid being rendered obsolete. When you take into accout that you must live the lifestyle of a software developer in order to make a living, I find that it is not worth it. You don't see this in other career paths to the extent that it's found in this field. It takes over your thoughts in and out of work, your KZbin algorithm, your interests, your hobbies, engulfing your time for what? Money. If you value money and like working in this field, I recommend adding up all the time you spend thinking about software development outside of work and factoring that into your hourly pay. You will find that it's not as much as you thought it was, and that perhaps it's not even worth being consumed limb from limb by a field that is experiencing a potential mass extinction event in the near future.
@hollowgonzalo4329
@hollowgonzalo4329 2 күн бұрын
@jamm_affinity That's one of the reasons I'm considering something like accounting instead, doesn't pay so good especially at entry level however at least once you get your CPA and know all the fundamentals you're not going to ever have to do it all over again and study for some new hip reinvented CPA cert every 5 years or so of your career In order to have any idea of what the fuck you're even doing anymore and have relevance to employers. There's also the fact that taxes are constantly needing to be done whereas there's booms and busts in the tech industry all the time (just look at what's happening to new grads from CS and bootcamps right now)
@jamm_affinity
@jamm_affinity 2 күн бұрын
@@hollowgonzalo4329 The only reason it is like this is because it is oversaturated. There's a selection event happening and it is clear, only the elite developers should stay in the field. Anyone who is not elite (top 2%) is better off to recognize this and spend their time elsewhere, or they will have a very hard time keeping up. You'll probably be better off going that route. Is it shiny? No. Is it on a cultural pedestol? No. But it's practical, and computer science is not. There's an entire generation of comp sci kids who turned into KZbinrs because they didn't make it into the field who are now trying to convince everyone how great the field is and how "anyone can do it", and it is one of the biggest cultural intellectual traps of the past 10 years.
@jan0195
@jan0195 Күн бұрын
The best comment I've seen in a while. You are absolutely right, after 5 years struggling with this I decided to move one and code only as a hobby without the pressure all the sacrifices of health and time. I only got here because I liked computers and games and wanted to do something I understood and wouldn't bother me too much and get a living out of it but now programming is made so vogue because of dozens of videos like: "my life as a software engineer at faang" and blogers talking about the perks of remote work and the salaries. I don't want a Faang salary or perks, I now have to get creative and find news options.
@jan0195
@jan0195 Күн бұрын
I see that you have an interesting substack, I too have decided to make similar content.
@jamm_affinity
@jamm_affinity Күн бұрын
@@jan0195 Thank you. I was in this same boat brother. 4 years mastering the craft, building all sorts of projects, landed a crypto gig making great money and got laid off after the bust. Wasn’t able to find another job. I see programmers as the new artists. In that, 99% of them aren’t successful, but creative types just building things that they think someone would find value in but that is ultimately not financially viable. I get a lot of flack for this, but most developers can’t see the writing on the wall. Too many emotions tied up in accepting that they will have to find a new way to make a living. Best of luck to you. I went back to the trades and am doing a bit better now. Started a painting business as well which I’m building up. Make more for my time than in software dev with a fraction of the stress.
@hyper_channel
@hyper_channel 2 күн бұрын
I liked your anecdotes and past experiences, faced many similar situations over the years, some of them generated very stressful weeks / months.
@paulmcgrath552
@paulmcgrath552 2 күн бұрын
The old question, "Do you have 10 years of experience or 1 year of experience 10 repeated times?"
@davidhart1578
@davidhart1578 2 күн бұрын
Also known as the reverse Bruce Lee
@jayocaine2946
@jayocaine2946 23 сағат бұрын
Lmao love this. All those Job hoppers in the industry are overpaid af
@kenpls
@kenpls 13 сағат бұрын
@@jayocaine2946 It's unfortunate because that's how you get a decent raise
@morpheusFromZion
@morpheusFromZion 2 күн бұрын
You must love the current landscape of web development 😂
@davidshipman5964
@davidshipman5964 2 күн бұрын
Great video. I recently went through a similar culture shift at a series A startup where directors for Engineering, Product, etc constantly shuffled and changed. It can feel pretty bad seeing a once good culture become not so great. In my case, the culture went from something open with trust into just a complete lack of trust, intense micromanaging, etc. I hope your job search goes well! It really does feel like culture is something that needs to be actively set and maintained. I worked at one series D startup that focused quite a bit on maintaining a good culture (and advertised it all over social media, job postings, etc), and overall it was really good. Of course, some issues naturally arise from being a bigger organization, but the culture overall felt great and open.
@sp3ctum
@sp3ctum 2 күн бұрын
Linters are great! There's even react specific ones available for eslint. I think in this example react-hooks/exhaustive-deps would have complained because the useEffect hook seems to be missing a dependency to the user id. If the user id changes, the useEffect doesn't get re-run and can show stale data. Linters like these are a huge time save!
@stefanalecu9532
@stefanalecu9532 2 күн бұрын
Especially if you combine them with glorified linters such as TypeScript
@RetroFrequency
@RetroFrequency 2 күн бұрын
I agree with you wholeheartedly, but I need to see 12 years youtube experience before I can like.
@PhilipNunoo
@PhilipNunoo 3 күн бұрын
Very good piece of advice.
@camerondudley2
@camerondudley2 3 күн бұрын
Thank you.
@khanriza
@khanriza 3 күн бұрын
Great video.
@speedychicken831
@speedychicken831 3 күн бұрын
Just WOW! You've killed OOP, sir.
@speedychicken831
@speedychicken831 3 күн бұрын
David Hart + Internet of Bugs are the best programming channels on YT!
@argbatargbat8645
@argbatargbat8645 3 күн бұрын
Same as all engendering stuff… use the tool that better fit the solution. Apply clean code as described by uncle bob in a game or in the algorithm shown here is not the choice to go.
@Tumorlike
@Tumorlike 3 күн бұрын
Thanks a lot!
@doc8527
@doc8527 3 күн бұрын
My personal simple rule for "modeling" is that the model I create is to specifically benefit the current problem I'm going to solve, with a minimal level of flexibility by allowing copy/pasting, rather than trying to solve the future problem or extendibility. This sounds extremely counter intuitive, completely against any of my ideas before good amount of experience. But the life lesson of I saw a lot of devs running into is that they try so hard to predict the future and make their model to be future compatible, which turn out to introduce a lot of complexities/abstraction into the current architecture unnecessarily, has no benefits to the current model, and attempt to solve a lot of imaginary problems. At the end, no matter how senior/genius the person was, the real requirement always defeat their "perfect" models. And the original raw version without any models always tends to be more flexible.
@shiningstar7481
@shiningstar7481 3 күн бұрын
At least my code should be easy to extend when I return a month later. 😂 Someone asked for some of my code so they could use it and speed up their own project. Never heard from them again.
@nyrtzi
@nyrtzi 3 күн бұрын
I guess the folks applying Clean Code forgot that every piece of it is a trade-off and that one shouldn't add that structure neither to the code nor to the processes around the code by default but only when it pays for itself... and lots of code isn't big or complicated enough to justify bringing in all of that heavy machinery. If you don't have multiple database backends yet then what's the point of abstracting away behind a generic interface the only one you have? Isn't one classic story of Agile the one where they make a wiki but first use a in-memory database while that's plenty for the software to do its job, then switch to files on disk when persistence becomes a requirement and then never end up implementation database storage because there was no real need for it... while in the meanwhile many projects start by first adding the database storage backend simply because it's tradition. I'm not saying this to promote agile but just to say that indeed why add something when there's no practical reason to.
@someaccount-mp4tk
@someaccount-mp4tk 3 күн бұрын
This guy right here == gold advice
@hodayfa000h
@hodayfa000h 2 күн бұрын
True or false?
@roycemilton8472
@roycemilton8472 3 күн бұрын
Great video! I bet The Primagen is gonna react to this.