Reacting to Controversial Opinions of Software Engineers

2,061,436
0
Published 2021-08-17
Software engineers can be very opinionated about their tools, patterns, and philosophies. Let’s react to some of the most controversial opinions from elite developers on Stack Overflow. 🔥 Grab some swag swag.fireship.io/

🔗 Resources

Original StackOverflow question stackoverflow.com/questions/406760/whats-your-most…
Trillion Dollar Disaster betterprogramming.pub/object-oriented-programming-…

📚 Chapters

00:00 Controversial Opinions
00:45 Object-Oriented Programming
02:36 Love to Code
03:24 Lazy Programmers
04:14 Google
04:48 CS Degree
05:48 Bad Teachers
06:35 Unit Testing
07:20 The Customer
08:19 Comments

🔥 Watch more with Fireship PRO

Upgrade to Fireship PRO at fireship.io/pro
Use code lORhwXd2 for 25% off your first payment.

🎨 My Editor Settings

- Atom One Dark
- vscode-icons
- Fira Code Font

🤓 Topics Discussed in this Video

- Software Engineering Opinions
- Object-oriented vs functional programming
- Java, JavaScript, Flutter, and Unity
- Coding Best Practices
- Learning how to Code
- Freelance Devel

All Comments (21)
  • @kosterdan
    Opinion: interviewing requires a totally different skill set than actually doing the job.
  • @vin5718
    Controversial opinion: SQL is pronounced Squirrel
  • my cs prof at university once said something which always stuck to me: "Programming is the art to tell annother human being what you want the computer to do" and I think this is so true
  • @sylowlover
    Not a programmer, I'm a mathematician, but the comment about upper education really resonates with me. If i had not gone to university, i would have not gained the mountains of insight from profs, succinct explanations, had nearly as many helpful peers, and i would never have been able to write anything close to the scope of my undergrad thesis without the supervision i had. If i had wanted to understand something like "hyperelliptic curve cryptography with genus 2", i would have been bumbling through papers and stackexchange posts for weeks, but my prof explained it wonderfully within 2 lectures. The sheer condensed knowledge from people with literal decades of experience in it isn't something you should just forsake as being "easily googlable". I really despise it when people say things like "university is useless", because it's just a certain type of learning environment that might not work for you, but it works wonders for others. Google is a library, not a professor.
  • Two golden pieces of advice I've gotten from senior devs: "Less code is good code", and "overestimate the time everything will take by a factor of 2".
  • @jayanths1221
    "I only have about 5000 rep on Stack Overflow, so my opinion really doesn't matter very much" - I swear I watch your videos just for the satire at this point lmao
  • @bruceme101
    28 years of experience. OOP was the cool hotness when I was a student in the early 90's. Encapsulation has its place, but most problems don't need it and it tends to obscure the code from the solution. The more I write code the less I write programs with OOP patterns.
  • @INDABRIT
    I like your speed. If it's a completely new topic it can be hard to follow but if I just want a brief summary or a refresher crash course it's amazing. You fit a lot of quality content in a short amount of time
  • My controversial opinion is that, regardless of being new or very experienced, a good programmer is flexible and willing to experiment outside their philosophy. Cause only Sith deal in absolutes.
  • @AronFiechter
    The opinion about not needing a college degree is very US centric, as in most other countries you can get a degree without getting any debt and often also without any side job.
  • @BigJMC
    Correct opinion: You’re writing your programs wrong if you’re not writing them in assembly.
  • I like python & Kotlin because they allow you to use OOP when it's really beneficial and don't force you to do it all the time for everything like C# does so, most of the time you can stick to simple functions and modules.
  • @mindlesscargo
    As someone who's found myself increasingly putting videos on 2x just to actually retain any interest in them, the speed at which your videos move is extremely refreshing and I find them to be very enganging
  • @MobiusCoin
    Damn, I actually like the speed of these videos. I hate watching tutorials where they type everything. I just want the core concepts. I end up using the arrow keys to jump giant chunks of the tutorial.
  • @nexdemise4182
    I definitely agree to the comments one and I think I wrote literally one comment in my code in the past few months because the thing the code was doing was not immediately obvious and it looked like that part served literally no purpose. It was a class that was getting SNSMessages from AWS via an API endpoint. The part with the comment was a try/catch block with a call to a Amazon supplied parse method for the incoming message Json and the catch block would return an http code 500 if tripped. Then I'd take the message json, re-parse it on my own, and process it by checking what kind it is and what's in it. At first glance it looked like the call to the Amazon parse method served no purpose, the result wasn't used for anything else, it just parses and then it does something else entirely. It was in fact a verification check, if it can parse that means that the message is legitimate, it's the right format, the certificates check out, and everything is good. If there's something wrong with the message it'd throw an exception that the catch block would catch and send back a 500. The problem is that the class it parses into is hot garbage that's a pain to work with so I just wrote my own but instead of verifying the message on my own I just used Amazon supplied classes for that only.
  • @DonaldSubert
    I actually like coded testing when requirements are vague, or changeable. I write the tests to specifically cover what I've been told to implement. Then, I show the documentation of those tests to the product owner. If there is a change, or misunderstanding, I can update the test, and that will inform the change in the implementation
  • @TheBadFred
    Testing: Most stakeholders want test driven development but don't want to pay for proper meaningful tests.
  • @n-0-1
    Every time I, "look at something with a fresh set of eyes," I end up refactoring my entire code.
  • @Cwafter
    The value of a degree is not so much about technical experience - ivy league universities teach largely the same content as other universities, but the value of hiring a graduate is knowing they passed the intense screening and application process. Same holds true for someone with a CS / EE / SWE degree. You can be sure they had to learn the difficult things they wanted to avoid, had to deal with stressful deadlines and full schedules, and had to deal with group projects where people are on different levels. With someone self taught this is not always self evident, and in my experience, a lot of them lack the teamwork and soft skills of graduates.
  • @adrianhenle
    IMO test-driven development's value is context-dependent. If you're writing front-end software or anything else with a high degree of interactivity, it's a lot more likely to be a waste of time, because 1.) it's much more work to develop tests, and 2.) the requirements are likely to change, especially early in development. Scientific computing, on the other hand, usually involves some calculations that are absolutely fundamental to the problem being solved, so it's easy and recommended to implement tests before implementing algorithms and interfaces.