What All New Software Developers Need To Know

Sdílet
Vložit
  • čas přidán 27. 08. 2024
  • I asked a bunch of industry-leaders and experienced software developers for their career advice for junior software developers. I got hundreds of responses. This video collates that advice and adds some of my own. So if you are just getting started, or about to begin, in your career as a software developer, here is some really valuable advice from industry experts, leaders in the field, as well as some of the people that will be hiring you, and probably managing and teaching you when you start out. I hope that you find it interesting, helpful maybe even inspiring in places.
    New software developers, just starting out, often focus on the wrong things. It is easy to get lured into the technicalities of language, frameworks and tools. After all, that is where we spend most of our time: but that is not what we do.
    I have been lucky in my career to work on some fantastic teams, with great people. Amongst my proudest achievements though has been in helping to coach and improve some software developers who were just starting out in their careers and in helping them to become world-class in their field.
    -------------------------------------------------------------------------------------
    Dave Farley is a well-known expert in the field of Continuous Delivery, DevOps and Software Engineering in general. He has led successful, world-class development teams and helped many people grow their careers in software development. He is also quite opinionated!
    📚 BOOKS:
    📖 Dave’s NEW BOOK "Modern Software Engineering" is now available on
    Kindle ➡️ amzn.to/3DwdwT3
    In this book, Dave brings together his ideas and proven techniques to describe a durable, coherent and foundational approach to effective software development, for programmers, managers and technical leads, at all levels of experience.
    📖 "Continuous Delivery Pipelines" by Dave Farley
    paperback ➡️ amzn.to/3gIULlA
    ebook version ➡️ leanpub.com/cd...
    📖 The original award-winning "Continuous Delivery" book by Dave Farley and Jez Humble
    ➡️ amzn.to/2WxRYmx
    ---------------------------------------------------------------------------------------
    Also from Dave:
    🎓 CD TRAINING COURSES
    If you want to learn Continuous Delivery and DevOps skills, check out Dave Farley's courses
    ➡️ bit.ly/DFTraining
    For a FREE guide to Pair Programming, sign up to the CD Mail List for the latest discussions, regular free "How To..." guides, and updates about events and online courses. Follow this link for the details ➡️ www.subscribep...

Komentáře • 464

  • @feyzullahsari9321
    @feyzullahsari9321 Před 3 lety +178

    “Everybody is junior at something “
    Very nice...

    • @ContinuousDelivery
      @ContinuousDelivery  Před 3 lety +9

      Thanks, it was one of the most common responses that I got from others, as well as something that I believe in myself.

    • @awesomeebomah8519
      @awesomeebomah8519 Před 3 lety +2

      Great tips in this video. Finally found someone that likes Tintin @feyzullah

    • @vaibhavbv3409
      @vaibhavbv3409 Před 3 lety

      correction -> every homo sapien is junior at something.

  • @rkd-me
    @rkd-me Před 3 lety +116

    This might be the first video i saw that doesnt talk about coding, but the actual things programmer need, great video!

  • @vjzb3
    @vjzb3 Před 3 lety +81

    As a dev who has just 2 years of professional experience, and has lacked access to mentorship, this information is incredibly valuable. I can see many examples from my past two years where I have succeeded or failed in applying the principles outlined in this video, and I now have the expanded awareness to be more intentional about these things in the future. Thank you

  • @StaffanJohansson1
    @StaffanJohansson1 Před 2 lety +30

    It took me about 5 or 6 years as programmer to realize most of these things, so I think this video is not only for "new" developers. Great summary of what our profession is all about.

  • @mr.dingleberry4882
    @mr.dingleberry4882 Před 2 lety +14

    This is criminally underrated. I've written down everything you said to make sure that I never fall under the impression that I've somehow "outgrown" these concepts set by veterans such as yourself. If you stress that something is important, I'd rather blindly trust you than experience the repercussions for thinking that I know better (Dunning-Kruger Effect). Thank you.

    • @ContinuousDelivery
      @ContinuousDelivery  Před 2 lety +1

      Wow! Thank you - I hope you continue to find my stuff helpful.

    • @sliding_nitro
      @sliding_nitro Před 4 měsíci +1

      It's a false dichotomy you shouldn't either blindly trust or ignore advices. You should understand all advices, tools, tips and rules are valid in a certain context and not in general. Understanding the context will make you understand why you often should not follow certain advices for your specific case.

  • @sarahgraves6759
    @sarahgraves6759 Před 3 lety +62

    As someone whose not a professional developer (hardly a hobbyist) I came just to say I love your shirt.

    • @ContinuousDelivery
      @ContinuousDelivery  Před 3 lety +10

      I have a small collection of silly Sci-Fi shirts, check out tonight's video for another :)

    • @brianhood932
      @brianhood932 Před 3 lety +3

      That shirt is why I clicked...

    • @---el6pq
      @---el6pq Před 3 lety

      I have this shirt!

  • @TokyoXtreme
    @TokyoXtreme Před 3 lety +22

    I feel like I’ve become a senior engineer just by listening to this video. I’m going to make SRS flashcards of all the things that aren’t already burned into my mind.

  • @isurujn
    @isurujn Před rokem +1

    Summary of things in the video
    1. Everyone is junior at something.
    2. It’s ok to say “I don’t know”.
    3. Apply “engineering thinking” to solving problems.
    4. Make progress in small controlled experiments.
    5. Seek mentors.
    6. Seek out pair programming.
    7. Find like-minds.
    8. Don’t be obsessed with tools.
    9. Focus on the problem you are solving.
    10. With lots of code - play with it.
    11. Learn test-driven development.
    12. Fundamentals are more important than tools.
    13. Languages and frameworks should be incidentals.
    14. Problem solving > design > coding > language and frameworks.
    15. Take coupling/dependancies seriously.
    16. Concurrency requires caution.
    17. Optimize for learning and discovery.
    18. Optimize for manage complexity.
    A lot more valuable things are discussed in depth in the video.

  • @khps9176
    @khps9176 Před 3 lety +13

    The first advice i would agrue is one of the most important once. The thing i've found is that the more i learn, the more i realize that i got no idea what i am doing.

  • @ejokeregaming
    @ejokeregaming Před 3 lety +39

    This is a great breakdown on the industry. Unfortunately, those doing the recruitment for many organisations, don't understand most of these points. Once you have a role all of this advice is spot on. Great job.

    • @ContinuousDelivery
      @ContinuousDelivery  Před 3 lety +14

      Thanks, I think that recruitment is a difficult job, but often poorly done. It is understandable that people too often take the "skills checklist" approach, because, though much worse, it is easier to do. I spent a fair bit of time in trying to recruit developers to a couple of organisations that I worked in, it is a difficult thing to do well, but it seems to me important enough to spend time on and to try to do well. I got to the stage where I didn't read CVs before an interview, because they were so targeted at lists of skills rather than the stuff that I was interested in.

    • @Nurof3n_
      @Nurof3n_ Před 2 lety +1

      @@ContinuousDelivery what were you interested in?

    • @ContinuousDelivery
      @ContinuousDelivery  Před 2 lety +1

      @@Nurof3n_ I talk about some of that stuff in this video: czcams.com/video/osnOY5zgdMI/video.html

  • @banatibor83
    @banatibor83 Před rokem +5

    As a software developer with almost 10 years of experience under my belt I am glad I found this video. It reinforced me that I am doing it right :)
    To junior devs, I would say focus on TDD and clean code first, make those a habit, get to know your tools and the language you are working with, then you can and should dive into higher topics like what were addressed in this fantastic video!

  • @magenertech9412
    @magenertech9412 Před 2 lety +2

    I've had 6 years of non professional experience and this video was the most eye opening I've ever watched on CZcams. Thank you for that.

  • @TheZethera
    @TheZethera Před 3 lety +80

    I remember someone saying: When starting a new project do the hard part first, that way you'll find out early if your project is even viable.

    • @ContinuousDelivery
      @ContinuousDelivery  Před 3 lety +63

      I would slightly change that approach. When I am presented with a problem, my first thought is "is a solution possible?". At that point, my approach is to try and think of any way in which you could solve this with software. If I can think of one, no matter how horrible or complicated my initial idea is, then I am comfortable that it is possible - and all I have to do is find a nice, or better, solution.
      I don't usually want to describe this first version to anyone, because the solution is usually nasty.
      I am pretty experienced, and so I am pretty confident that if I can imagine a solution, I can build one too. I am also VERY confident that I can start without knowing all of the answers. So for regular things, I am happy to start very quickly.
      At that point, I want to start, not with the most complex stuff, but with the most valuable stuff. Ideally, I'd like to create something useful and get it out to people to see how they react.
      If the problem has some aspect that I have no idea how to do it, or imposes (for example) performance constraints that I don't know if they are possible, I will do some experiments - These are consciously throw-away, in terms of code. Don't confuse learning if something is feasible, with building something that is production ready. If you try to do both at the same time, you will do a worse job of both. Best to try and think of the simplest experiment that can show you the way forward, and do that.

    • @michaelnurse9089
      @michaelnurse9089 Před 2 lety +2

      The issue with this is that it assumes you know what the hard part is which assumes you have deep knowledge of the problem domain. In the real World, you write what you THINK is the hard part first, then tell the boss it is all going to be done on budget. A month later you discover the REAL hard part and you are up a creek without a paddle.

    • @lesterliston4692
      @lesterliston4692 Před 7 měsíci

      But Sr do it as easy as possible and didn’t even concern to the other end of integration which is adjusting their code to accommodate the easy way of the Leader/Sr.

  • @tleanvasner6866
    @tleanvasner6866 Před 2 lety +2

    I've seen a bunch of videos with advices for new software developers and none of the speakers to my mind were so enthusiastic about the job in the IT. It was so nice of you to greet us with such warmth at the beginning of the video! It IS very inspiring when you finally see a person who is still able to enjoy the work despite the decades of experience.
    Thank you :)

  • @viniricardoferrera
    @viniricardoferrera Před 3 lety +3

    I'm started programming 9 months ago. I'm at the beginning to crawl still. I became so hungry for knowledge that I'd never possibly imagined that I would be falling in love that hard for a thing. In the 9 past months, I had 3 burnouts.
    In the first one, I've spent at least one month until I can get back to the front of a computer again.
    This was when I've decided to learn how to learn to recover myself from burnouts readily and realized that I have become a programmer.
    Thank you for the valuable advice.

    • @ContinuousDelivery
      @ContinuousDelivery  Před 3 lety +1

      Thank you, and good luck. It is a very addictive pass-time, so take it easy, but have fun too.

  • @offilawNoone
    @offilawNoone Před rokem +4

    Very useful stuff. After I got my second higher education three years ago, I did programming all alone and, probably, this is an excuse, I didn’t have time to learn how to do it right, because I immediately needed to complete commercial tasks quickly, in languages and with the help of tools which I have just learned to use. We all know that formal computer science education does not provide programming skills in specific languages and development environments. In such an environment, and even I would say bubble, I worked for about three years. But then the war happened. A few months after that, I was gathering my thoughts about how to live on, and as a result, a few months ago I left my country, leaving almost everything behind. Grabbing two bags with things and a backpack with laptops, I crossed the border of my country on foot. Now, in order to be able to work remotely in a normal company, competing with good programmers, I need to increase my level by several steps at once, otherwise there remains the prospect of being one of those stereotypes who, having several higher educations, work as sellers or loaders. I try not to think about the upcoming trial and deportation, I try to learn new things. It's not easy when you live on suitcases and don't know if you can afford to live under a roof and eat in the coming month. A good programming video can take your mind off the stress. As a former psychologist and almost linguist, having studied at four different higher education institutions, interacting with students of three different generations, with teachers of completely different levels, I can immediately recognize a good training video and a good language structure (interaction of thought and word of a speaking person), which is easy to perceive even to foreigners who studied the language mainly from textbooks and Hollywood films. Thanks for the good content.

  • @niklot5046
    @niklot5046 Před 2 lety +4

    Trying to transition from QA to development in gamedev, I started learning how to code very recently.
    Looking through all the job requirements for Gameplay Programmers etc seems so daunting I started to doubt if I have enough lifetime to master all those skills and technologies.
    This video gave me lots of hope and further fueled my drive to push forward and learn.
    Thank you!

  • @missusfinz
    @missusfinz Před 7 měsíci

    I love your knowledge and humility. It is refreshing to find a CZcams channel that really looks at the fundamentals. Thank you

  • @mwathibrian
    @mwathibrian Před 3 lety +15

    I am 2 years into my journey as a Software Developer and have found this video very insightful. Thank you.

  • @enjonpodrimaj1011
    @enjonpodrimaj1011 Před 3 lety +4

    Hey David, just wanted to say, that after my two years of working on software development, I know at least enough to value all these tips and carry them onto my career. Thank you very much!

  • @akinbodejoshua748
    @akinbodejoshua748 Před 2 lety +1

    I was overwhelmed by the information I got from this video, thank you so much.

  • @jeehill9592
    @jeehill9592 Před 3 lety +8

    Hey I am restarting my life (have been for the last 7 years) and I recently got a degree in Software Development focused Computer Information Systems. I am finally in a position to break into the industry (hopefully) after overcoming some obstacles that disallowed me to go for tech jobs and I really appreciate this video. I aim to become a software dev and work on a team challenging myself and growing. Keep this stuff coming I enjoy learning more about how to be more successful in this field.

  • @kennethgee2004
    @kennethgee2004 Před rokem

    wow to think that a junior dev can keep 101 things in mind when they have probably just finished college is awesomely generous. Let us keep it simple. You get three things to keep in mind: Keep it simple, readable, and coherent to the issue.

  • @manni.Net60
    @manni.Net60 Před 2 lety +3

    As a Developer withone year of professional Experience it is very obvious, that you actually have a Deep understanding of our field and can communicate your learnings well. Thank you and keep it up

  • @darknesstwi
    @darknesstwi Před 2 lety +2

    Honestly, the information in this video is invaluable. As a junior in college, I couldn’t have found this video at a better time. I’ve already started creating some of the crazy ideas I have in my head and this video helped me realize some of the weak methodologies I was carrying out. I also loved the tidbit about watching someone use your product. I never considered the importance of observing the interactions between your product and outside interfaces. Cheers!

  • @tommornini2470
    @tommornini2470 Před rokem

    42 years of experience here.
    Fabulous advise, delivered succinctly.
    One clarification I’d add: youngsters get obsessed by abstraction, and frequently mislead by conflating abstraction with inheritance and nouns.
    The key to useful abstraction are the verbs, and the nouns should be abstracted so they can be fed to the verbs indiscriminately, i.e. polymorphism.
    Add dependency injection, and you’re now able to usefully abstract.
    Abstraction IS NOT about writing a lot of conditional logic, it’s about removing conditional logic!

  • @RondellKB
    @RondellKB Před 3 lety

    Problem Solving > Design > Coding > Programming languages and Framework.
    I like this!

  • @codestuff782
    @codestuff782 Před 3 lety +5

    This was insanely insightful. CZcams needs more like this content. I subscribed immediately. It is easy to learn frameworks and etc. but hard to learn how to think about general structure, road and patterns. Thanks a lot.

  • @MrAbrazildo
    @MrAbrazildo Před 3 lety +1

    I agreed with all of that.
    0:59, there's stress too.
    4:00, _"I never learn anything in the tournaments that I won"_ - Bobby Jones, top golf player.

  • @curiosdevcookie
    @curiosdevcookie Před 3 lety +2

    That content was awesome - thank you.
    The reasoning of every advice was clear, the attitude is that of a true mentor‘s heart, and the whole setting felt no-nonsense, focused reassuring and inviting. As kind of a personal bonus, I like listening to your voice and enjoy watching you explain things.
    So, a big thank you from an aspiring developer from far away Germany, who once was apprenticed to a carpenter (no joke), who then studied History on her way to a PhD (translating Ancient Greek and Latin), who then lost everything, … who finally has discovered that strange, beautiful, nerdy dev land and feels very much at home there.
    It‘s the best of all worlds, where I can concurrently explore, built, be creative, and do science 🙃

    • @ContinuousDelivery
      @ContinuousDelivery  Před 3 lety

      Thank you. I’m glad you enjoyed the video and found it helpful!

    • @Juzzyjuzzy
      @Juzzyjuzzy Před rokem

      That’s a good one! My story is a bit similar. Studied marketing, and for an MBA, but discovered myself to love this field.

  • @matthewwilson2369
    @matthewwilson2369 Před 2 lety

    Respect for the Spectrum box holding up the monitor.

  • @tudor1899
    @tudor1899 Před rokem

    Mr. David Farley, you are a treasure. Thank you for sharing your wisdom.

  • @ZIeLoPeNation
    @ZIeLoPeNation Před rokem

    The very beginning really triggered something In me to keep going. Glad to hear from an older perspective.

  • @nevinkuser9892
    @nevinkuser9892 Před rokem +1

    Get good at problem solving and the coding will come along with it. Wiser words have never been spoken.

  • @tbcfrankee
    @tbcfrankee Před rokem

    These aren't things new software developers need to know. These are things all people should know.

  • @vgonzenbach
    @vgonzenbach Před 10 měsíci

    I'm just starting out my software development journey and you have turned my mindset on its head. Thank you sir! Please keep posting quality content!

  • @mdegginger4761
    @mdegginger4761 Před 3 lety +1

    Thank You for taking the time to set up a beginning roadmap for Jr. Developers. Talking to us about what is actually important , and what to strive for certainly will eliminate a few bumps and bruise along the way. This discussion already has changed the way I approach my job, and lead me to subscribe immediately. Great Job.

    • @ContinuousDelivery
      @ContinuousDelivery  Před 3 lety

      Thank you, in case you missed it, this weeks video is also aimed specifically at more junior devs too. czcams.com/video/5g3dK2DgW-k/video.html

  • @l0g1cb0mb
    @l0g1cb0mb Před rokem +1

    I'll say that one of the biggest bits of advice is that talking about a problem bit; I think talking out, explaining the problem to one another is the core of what makes Pair Programming so effective. Second would be exposure to new ideas or ways of doing a thing that one may have done differently. The caveat being that if you see something you'd normally expect to result in an error, it may well be best to voice the concern (non judgmentally) rather than accept that the other person's skill is simply that good that they're showing you a manner wherein the error would be avoided. That may be the case, but stating your concern upfront is part of your contribution to the experience, and they may in fact actually be in error; so catching it early may save some time and frustration troubleshooting later.
    But back to my point on explaining the problem. Mulling an issue over in ones head may not be as productive as explaining the matter to someone else. Wherein doing so immediately exposes to you what the issue is you've been missing. They may or may not see it as immediately depending on where they're starting from comparatively. But, if you've been soloing an issue and get a partner for a brief moment, explain it to them, almost immediately while explaining it, the eureka moment happens, it's almost maddening, and you can't tell if that speaks to the power of pair programming or not frankly, but I'll give it the win, for that was almost always the impetus for the event occurring. ^_^
    I love personal space, but I can't gainsay dual-core development neither! ^_^
    But I ain't one to gossip... .

  • @l_combo
    @l_combo Před 3 lety +1

    Another fantastic T-shirt ;) this advice doesn't just apply to developers either - very useful! Some other great advice in the updated version of the Pragmatic Programmer book too.

    • @ContinuousDelivery
      @ContinuousDelivery  Před 3 lety

      Just the "Cyberdyne Systems" one left in the SciFi T-shirt series🤣 😎

  • @andreasfrom582
    @andreasfrom582 Před 3 lety +2

    These pieces of advice would have been handy when I started out... It really would have made a world of difference!

  • @howiewang4238
    @howiewang4238 Před rokem

    1. Don't be obsessed with tools.
    2. Try to UNDERSTAND the problem. then TALK about the problems.
    3. We tend to be creative when relax, which the working environment seeking
    4. Real job is to solve problems, not about code
    5. TDD - test driven development
    6. Solving problems > design > code > languages & frameworks
    7. Hard parts: concurrency, coupling, & dependency management
    8. Optimize to manage COMPLEXITY -> create MODULAR systems; improve COHESION *separation of concerns; manage COUPLING; use ABSTRACTION

  • @DirkBotha
    @DirkBotha Před rokem +1

    I consider the phrase "I don't know." the true mark of a Software Engineer. It's the way we say: "I'm going to figure it out". :)

  • @alexebarlescu9502
    @alexebarlescu9502 Před 3 lety

    The best piece of advice ever for beginers who looking to self teach, who maybe learned frameworks before they even ever known the meaning of the fundamentals explainded in this video. Thanks

  • @EnVideoZone
    @EnVideoZone Před 3 lety +1

    Amazing clarity; advice that you can feel. Every now and then you shine a light on something we got right and the sweet bells chime. So rich and most comprehensive. I am most grateful for this.

  • @romixch
    @romixch Před 3 lety +6

    Thank you for sharing this great summary. Its always good to step bach and think about this fundamentals. Even after 20 years of experience.

    • @ContinuousDelivery
      @ContinuousDelivery  Před 3 lety

      You're very welcome!

    • @royhonders
      @royhonders Před 3 lety

      What exactly did you get out of these fundamentals?

    • @ContinuousDelivery
      @ContinuousDelivery  Před 3 lety

      @@royhonders The fundamentals are part of what I think of as a genuine "engineering approach". The outcome is software with fewer defects, that is easier to work on and easier to change to meet user needs.
      The focus of this "engineering approach" is on two things, optimising for learning - science, iteration, feedback, experimentation etc. and optimising to manage complexity, modularity, cohesion etc.

  • @danielbennett6645
    @danielbennett6645 Před 3 lety +18

    Think this is good review for even senior developers.

  • @disgruntledtoons
    @disgruntledtoons Před rokem +1

    Always strive to work for a company which hires entry-level talent, even if you're not entry-level. In order to succeed and stay in business, these companies have to be prepared to provide the skills that they require (that is, training in specific technologies), when these skills cannot be found in the pool of available talent. Companies which are always looking for X years of experience with technology Y have no vision and will fail when their lack of planning bites them.

  • @-Tholos-
    @-Tholos- Před rokem +1

    This is good advice. Wish I had this when I started out.

  • @jensBendig
    @jensBendig Před 3 lety

    Knowing that you don't know and opening that box by analyse and discourse is the most important step. If they hate Pair-Programming: Run! Being good with problem-analysis means being good with terms. That means: Be good with language. Solve problems structural. Awesome talk. Ah...and dont separate concerns by finding very strange concerns...

  • @alinekoh2
    @alinekoh2 Před rokem

    my professor at advance Testing class referenced this channel. Now i know what he is talking about. based in science and accurate resource and great experience. keep up bro

  • @PhilAtCanada
    @PhilAtCanada Před 3 lety +1

    These are very very helpful. Just watched probably 5 of your videos over the last couple of days. In the fast paced world of software development being reminded of grounding principles and what actually matters is an important reminder. Best videos about programming and higher level concepts I could find on CZcams.

  • @dryzd
    @dryzd Před 3 lety +5

    I have 7 years experience in Mobile Development and I still always check advice for juniors. Great video. I really like your chanel.

  • @randomhippo
    @randomhippo Před 3 lety +2

    The Sinclair ZX Spectrum box in the back bring back memories. It was the first computer I had as a kid. 48K RAM was a lot back then :)

    • @ContinuousDelivery
      @ContinuousDelivery  Před 3 lety

      I had a ZX81 first, but my family clubbed together to buy me the Spectrum, and I did most of my early programming on it. The box contains a real one too 😁 😎

    • @tectopic
      @tectopic Před 3 lety

      @@ContinuousDelivery I started with a ZX80 kit and a solder iron. Then a PROM later it was a ZX81 and then came the Speccie and Jupiter Ace. Wow that was a long time ago.

  • @user-jt4hw8jf5x
    @user-jt4hw8jf5x Před rokem

    This video really helped me a lot in my beginning. Literally every piece of advice was extremely useful for me. Much appreciated 👍

  • @henryecoleman
    @henryecoleman Před 3 lety +5

    Very cool and humbling video. Demystifying, inspiring and deeply insightful.
    Happy Healthy New Year!

  • @BonelezzK
    @BonelezzK Před 3 lety +11

    Quality content, we need more... Спасибо Вам)

  • @alejandrocosta2756
    @alejandrocosta2756 Před 2 lety +1

    Your channel is among the best things I've came across in the last couple of months, within this magnificent universe of software development. Thanks a lot for this great work! ✌️✌️✌️

  • @user-ox2zd6hi4s
    @user-ox2zd6hi4s Před rokem

    I found this all very valuable even though I'm a software tester who only does programming for test automation and as a hobby on the side. Your channel as a whole is quite excellent. It surprises me that your subscriber numbers are not higher.

  • @sigmapi1989
    @sigmapi1989 Před 3 lety +1

    "Its not about the code or the language"
    Love how you framed up good vs bad developers.

  • @cantand2817
    @cantand2817 Před 3 lety +1

    Thank you. Just wanted to show my respects for the years in the industry. I've started 10 years ago and still learning better ways of solving situations I encounter daily (problems are only in math and they allways have at least 2 solutions) . For juniors and starters I would suggest to start with the basic principles of programming, OOP concepts and then play with multiple languages to get to know which are the tools you could use to solve situations :) best of luck to all

  • @gahshunker
    @gahshunker Před 3 lety

    This is golden information for self taught developers that come from different background other than CS. And it is available for free on CZcams. Thank you kind Sir!

  • @rodvicj9896
    @rodvicj9896 Před 3 lety +2

    Have to rewatched this, thats a mouthful of great advice. Thanks

  • @omarelkhatib150
    @omarelkhatib150 Před 3 lety +11

    I don't know if I am qualified to give an advice but I will share my experience for those who have same journey , I start programming when I was young , around 11 years old , I am now 21 and I gone threw a lot and waste a loooooot of time , It was completly random way of learning , I spend time on weekends when I was in school learning object oriented I still remember waiting weekends to learn another new concept , I tried game developement I even skip school days to finish my game , so I am kinda of bad student I really hate school and now I am in university , I really hate going to school but this was not my choice , a great depression till now I am like a failure on others eyes , no one get my passion they see me as stupid and this will affect your life and productivity , I regret not focusing on maths in school to be honest because it's a main part of computer science , I heard a lot said you don't need a university education to be an software engineer it's true but they didn't tell you is that you need to work and study hard , not sitting all day playing games and learn for small amount of time you really need to study very hard to cover the main parts of computer science like data structures , algorithms , object oriented , operation systems , compilers , web developement , databases. You need to learn them don't skip fundamentals if you skip them because they are boring you will reach a point that you face a data structure and return to basics back and forth , also I join a university that doesnt have lot of math is about telecommunication engineer but I didn't accept to be something other than a computer science this is my dream for so long , so I drop out and join computer science major which have 1 full year of math like 7 courses on math and 2 physics , I failed and drop out quickly , but next year I came back again I am not person that run away from dreams so I pass all of them with good grade , I didn't realise that I lost 2 years of my life specially in those 2 years i completly stopped to learn on my own I was depressed I spend all time playing games to escape . I learned that my time is very valuable please don't waste it you will never get it back , don't rush it take it slowly a strong fundamentals is essential part of being good programmer the understanding of underlying techniques will help you in understanding , take your time to understand science behind it , ask a lot of why? this will make you grasp a new technology very very fast , so science > technology. It's cool to show off your projects to others as a kid and still as grown up , but more important to show off to your self , are you really proud of making this code?
    Now for the software engineering , people like to argue , they like it a lot , we are philosophers we like to argue about small details to look smarter than others even as a kid I hated to say I don't know, but guess what their is no way to know every thing and the deal is not to know everything is about to know what you want and how to look after it , is okay to say I don't know and if you need to know take your time to really understand it. Second it's overwhelming all those technologies coming out angular , react extra , extra , cloud , bla bla bla. The deal is not about knowing them , again what matter is the basics , the basics are being discussed in details in this video , third please don't fall into let's make an clone for x thing , as a kid and not for long time before I stop watching those , you will get addicted to it. Learn to set down with a black screen and make mistakes those tutorials they make things look very easy and cool , but it's not in reality they are not showing you the way of thinking or design behind the code , even paid courses are the same. So please look stupid now better than looking stupid for your entire career take things slowly is the key , doing things in right way is the other key. Know that every peice of code you write have an effect on the end project , its not on how much you build you may build many softwares with bad practices without knowing that. In your mind it will be okay it's works so you will never have the chance to improve, one other thing is reading , read as much as you can and understand it , their are lot of good books you will learn a lot every peice of paper hold something that can improve you , 60$ on a game or a skin or buying a book think about it . last thing is you own your life and career is up to you to be good at what your doing no one owns your life so if you don't work in yourself no one will help you.

    • @ContinuousDelivery
      @ContinuousDelivery  Před 3 lety +2

      It is certainly much more difficult to begin without a degree, but unlike lots of other professions, it is still not impossible to do it.

  • @nematjonabdulloev3568
    @nematjonabdulloev3568 Před 3 lety

    Speaking about mentors, after a few minutes of watching, I can admit for sure, that I will follow the mentors like an author.

  • @anthonygibson3709
    @anthonygibson3709 Před rokem

    First time seeing a video from you, thank you for this. Starting my first dev job in 2 weeks.

  • @Aymand1982
    @Aymand1982 Před 3 lety +2

    Great video, enjoyed it a lot. You describe separation of concerns and coupling in a very clear way, especially for someone like me who is still learning software development.

  • @Songfugel
    @Songfugel Před 3 lety

    That first tip is so vital!
    I gained PTSD and debilitating imposter syndrome from a very bad work experience under a mentally abusive boss to whom nothing was ever good enough and was publicly humiliating anyone who made even one mistake in their eyes while they were constantly looking over your shoulder.
    After that, I have been struggling extremely hard to get anything delivered in software engineering due to extreme panic attacks whenever a situation arises where I don’t know the answer to a question or how to solve the problem immediately. Applying to jobs and sending any work reviewed for commit has been hell, and I often get such panic attacks I sometimes faint.
    I wish I could get back to the mindset of trying your best is enough, and no one knows everything. But at least for the moment, that path seems blocked for me. I am still working on it, and at least I haven’t fainted in almost a year now during the panic attacks.

    • @ContinuousDelivery
      @ContinuousDelivery  Před 3 lety +1

      I'm sorry that you have had such a negative experience! I hope you find a much nicer place to work soon.

    • @Songfugel
      @Songfugel Před 3 lety

      @@ContinuousDelivery Thank you for the kind words

  • @jorislamers
    @jorislamers Před 7 měsíci

    Especially the point about the hammer hits home! I see this all around me where the industry only focusses on frameworks etc and nobody seems to care for the fundamentals anymore. People can't solve the simplest problems anymore without installing a library or get completely stuck if something doesn't work exactly as planned. When I hire new developers, I don't care what web framework or tools they use, I want to see they understand the fundamentals. Then the framework becomes irrelevant, because you can make it work with anything!

  • @scottisitt
    @scottisitt Před 3 lety +2

    Great information! Really appreciate you sharing this.

  • @alankjohn9263
    @alankjohn9263 Před 3 lety +1

    Gonna recommend this to everyone
    This is just awesome not a second wasted covered so much I'm pretty sure I lost track at some point overall just really glad I came across this video

  • @alisbtan9870
    @alisbtan9870 Před 3 lety

    I just started as a back-end java after a change of "career" despite having only a degree in chemistry, after months of self-taught development I was able to jump into the programming industry. I will treasure these tips and try not to fall into the most trivial mistakes that everyone complains about. Thank you very much Dave, wish you the best!

  • @tj71520
    @tj71520 Před 2 lety +1

    Ive worked as a systemdeveloper since 2007 and I found this usefull

  • @Chirku
    @Chirku Před rokem

    Thank you for making this video! This is what I was looking for.

  • @sebwylleman
    @sebwylleman Před rokem

    This is so valuable, thank you for sharing Dave!

  • @TjSpoonManJacques
    @TjSpoonManJacques Před 2 lety

    I remember that little nerdy algebra teacher back in 1990 with the pocket protector and shinny Penny Loafers, the one who tried with every cell in his body to get me to fall in love with Lamda Calculus & Computer Science, but I hated both classes. To be perfectly honest: his exasperation with me was the best part of the class. "Computers are for nerds who can't get girls and calculus was invented to torture high school kids" was my thought process back then as one of the so-called 'Kool Kids.' Fast forward to 2022 (age 50 & Divorced) I now listen to a nerdy guy from 'Continuous Delivery' as if he's John The Baptist, I'm obsessed with learning EVERYTHING about Javascript / Python for Finance /Node.js, and I'm currently loving every freakin' second of a free Duke University course (that's 9 hours long) called INTRO TO CALCULUS. My advice for the 17-year-old me is simply "SIT YOUR-KOOL-AZZ-DOWN AND LISTEN TO THE NERDY GUY - HE'S FROM THE FUTURE!" LOL

  • @michaelhughes8413
    @michaelhughes8413 Před 2 lety

    I really enjoy listening to your videos, so thank you! Great advice, and free!!

  • @siyaram2855
    @siyaram2855 Před 3 lety

    Glad to see real people talking real stuff.

  • @elanrider
    @elanrider Před 2 lety

    Dave, it's great to see the background of your room. I really enjoy the content of the channel and your personal approach to deliver it. Now I learned that we have things in common other than software development by looking at things surrounding your workplace. I love model airplanes, ZX Spectrum was my first computer back in 90s, and I enjoy Guinness too))) Thank you.

  • @booqueworme
    @booqueworme Před 3 lety

    Great advice collection.
    And independent of the language or developers level.
    In Russia and some other ex-USSR countries there is a popular domain-specific framework called 1C with its own language used to automate trade, accounting, warehousing and other business domains.
    I'm not an expert at it but I clearly see all the problems described by you that even "senior" 1C-developers bring into their clients' code base even though the framework itself nudges the developers to learn the business domain and be good at it to some extent.
    I watch some other CZcams channels on programming in Russian and English and I must say that your adviсe are much more profound and resonating with practice than almost everything I've seen here on CZcams before.
    Thank you very much sir for your wisdom and advice!

  • @aadityakiran_s
    @aadityakiran_s Před 3 lety

    Can really tell that you come from a place of profound experience. Where I come from Software development, especially in a software service company is not that good a job. People are just overworked and there is no emphasis on learning. Just on getting the job done because the lifecycle of the software we're developing isn't that much. Always encouraging clients to pay for a newer version than to keep the older one running and more modular and extensible. Please make a video about work culture in the software field as well. If this video is anything to judge by, that should also be a good one. Glad to have found your channel. Thanks.

    • @ContinuousDelivery
      @ContinuousDelivery  Před 3 lety

      I have been doing this for a long time, and have been lucky to work as part of some great teams, so I have learned a lot from them.
      Thanks for your comments on the channel. I agree with you that culture is an important part of good engineering, I have some videos that touch on some aspects of that. Here are a couple that you may find interesting, but I do plane to do more, and I will think about what I can do based on your suggestion, so thanks for that too.
      "How to build big SW with Small Teams": czcams.com/video/cpVLzcjCB-s/video.html
      "You must be crazy to do pair programming": czcams.com/video/aItVJprLYkg/video.html
      "Top 10 Rules For Continuous Integration": czcams.com/video/Xl62gQpAl1w/video.html

    • @aadityakiran_s
      @aadityakiran_s Před 3 lety

      @@ContinuousDelivery No, thank you for the great content. Looking forward to see that.

  • @xavierm1018
    @xavierm1018 Před 3 lety

    Sometimes we need to re-phase ourselves. This is nice video to watch, doesn't matter how long you are working on programming.

  • @blessank09
    @blessank09 Před 3 lety +6

    Thank you for sharing, it was very helpful!

  • @dheerajkrishna2647
    @dheerajkrishna2647 Před rokem

    Thank you very much for your valuable input for software developers.

  • @lubodimitrov8778
    @lubodimitrov8778 Před rokem

    my boss showed me this video and i think is one of the best videos about software development that i ve ever seen :)

  • @caioporta5060
    @caioporta5060 Před 3 lety

    Hi from Brazil. I worked in France last year. I applied the "pair programming" and I didn't even knew there were a name for it. It worked pretty well. I liked so much when you explained the difference between a good and a bad programmer. I'll try to improve things like that in the future. Also letting people to use my software was not at all what I expected and I had to do some changes because it seemed to be not that obvious for them. Thanks for sharing with the world your knowledge. Have a nice 2021!

  • @marsrocks247
    @marsrocks247 Před 3 lety

    This channel is blowing my ****ing mind.
    Just got my "full stack" belt (a tiny bit not really there yet maybe ish)
    Really getting serious, and this is echoing my best thoughts back to me fleshed out and reinforced while calling my bad habits out like an eagle spotting a mouse.
    BLESS YOU.

  • @zentekvideogames3589
    @zentekvideogames3589 Před 3 lety

    Solving Problems > Design > Coding > Languages & Frameworks. Nice!

  • @xBaphometHx
    @xBaphometHx Před 3 lety +1

    I love your advices. They are understandable and very useful. I hope you get a lot more viewers.

  • @dlcfrsu6940
    @dlcfrsu6940 Před 3 lety +1

    Awesome content for Developers of different levels. Thanks for sharing

  • @VDMpeniel
    @VDMpeniel Před 2 lety

    Amazing video! It will take me watching this a few times before I can absorb all that info. Thank you so much.

  • @kibirigejohn8324
    @kibirigejohn8324 Před rokem

    Thank you so much Mr. Farleyfor this video, it was really helpful

  • @mishalzeera8172
    @mishalzeera8172 Před 3 lety +1

    Thank you, that was helpful. Im just getting into software/coding in my 40s, and am really enjoying it. I hope you still have that Sinclair somewhere. Im from the Commodore 64/Amiga generation, but the Sinclair systems were kind of legendary by then. Be well!

  • @induction7895
    @induction7895 Před 3 lety

    Thank you for the advices. I feel very fortunate to learn from someone as experienced as you.

  • @christophjahn6678
    @christophjahn6678 Před 3 lety

    This is a great video and I would love to see more like it. Just like many others have already written before me, this advice is relevant not only for junior developers. I would even argue that it becomes more relevant the more senior you get. Because you start to develop a certain kind of assertiveness or even arrogance, due to your success. Taking a few steps back and look at the bigger picture really does help. Also, it kind-of makes it easier to explain to commercial people (often called managers) why it is not a brilliant idea to staff teams almost exclusively with inexperienced people. Not only will it likely produce bad results. But it will also deprive the "juniors" of a chance for proper mentoring and support. The latter takes time and nobody can support 10 folks. But that is probably a separate discussion (and video ;-) ). Thanks for the video!

    • @ContinuousDelivery
      @ContinuousDelivery  Před 3 lety +1

      Thank you. I agree with you about the value of teams made up of a mix of experience. I think that companies a very dumb to not focus on training people, and for that you need some more experienced people to guide them.
      I led a team that did some very difficult, very cool things. We built one of the world's highest performance financial systems. It was a daunting engineering challenge. When we began we decided that we were going to hire people that we already knew, from personal experience, were great, and then very smart people that were new to the industry so that we could help to guide them. I am extremely proud of the impact that we had on several people's careers as a result. We helped them to grow to become great software developers. This wasn't a cost to our org, it was a benefit. Too many orgs are much too short-sighted in this respect.

  • @hebronwatson9532
    @hebronwatson9532 Před 3 lety +1

    Super helpful stuff, sir. I look forward to using the resources you have outlined.

  • @polizovski
    @polizovski Před 2 lety

    Excellent insight, great advice what needs to be in focus. Thank you for sharing.

  • @IshanDasSharma
    @IshanDasSharma Před 3 měsíci

    A great video, wish someone had told me these things a decade ago.

  • @jahmalspringfield316
    @jahmalspringfield316 Před 3 lety +2

    Definitely informative, clear, and concise!

  • @lcividin
    @lcividin Před 3 lety +1

    Like for the T-Shirt alone awesome! but great advise as well thanks

  • @bachristus
    @bachristus Před 3 lety +1

    Thank you! As always great thoughts and wisdom