Rethinking Python: Is it Really a Great First Language?

Поділитися
Вставка
  • Опубліковано 28 вер 2024
  • One of the problems with getting started as a software developer is figuring out the order in which they should learn things. When beginners see statements like "Language X is easy" or "Language X is popular," they think that an easy and popular path would also lead to success in the field.
    Python is a great example of this. It's popular and has relatively easy syntax to learn, but it is not a great choice as a first language for most people.
    In this video, Eric covers the reality of finding entry-level developer jobs in Python and how its popularity can mislead aspiring developers into spending time learning a skill that doesn't help as much as it should in finding your first developer role.
    Before the pitchforks and torches come out from the community, Eric explains what type of professionals benefit from knowing Python (Spoiler alert! It's not web developers!) and where in your career arc as a software developer it makes sense to add it as a skill.
    💬 Did you like this video? Let us know in the comments below!
    ✅ Click here to subscribe to Skill Foundry now!
    www.youtube.co...
    📍 Like the Channel? Sign up for the Newsletter!
    skill-foundry....
    💥 Learn to Code the Right Way! Build an Unshakeable Foundation.
    www.skillfound...
    📬 Contact us anytime!
    www.skillfound...
    ---------------
    Welcome to the official UA-cam channel of Skill Foundry - Learn to Code! Build an Unshakeable Foundation ☑️
    With years of experience in shaping talent across corporate offices, universities, and innovative coding boot camps, we've mastered the art of guiding you from scratch to an employable level of coding expertise. Our ability to deeply understand the challenges you face as an aspiring coder sets us apart. Each video we create is crafted to specifically address these pain points, enabling you to overcome common hurdles. At Skill Foundry, we strongly believe in the transformative power of education. Our mission goes beyond just teaching code; we aim to empower you with the skills and knowledge you'll need to excel in the ever-changing landscape of technology. Whether you're contemplating a career change, fresh out of school, or an enthusiastic self-learner, we're committed to providing you with all the tools necessary for a successful technical education journey.
    ➡️ Our learning approach is distinctive. We're not just about lectures and theory. Our videos blend theoretical concepts with hands-on exercises and real-world projects. This holistic method ensures that you're not just memorizing information but also applying what you've learned in practical, job-relevant scenarios. This means you gain both the confidence and the competence to tackle complex coding challenges, setting you up for long-term success in the industry.
    Expect weekly coding tutorials that range from the simplest 'Hello, World!' to complex algorithms, interactive Q&A sessions with industry professionals, career-building strategies, project walkthroughs, and much more. Our aim is to serve as your all-inclusive resource for coding education.
    Join us in our exciting educational adventure as we equip you with the key skills to excel in tech. Together, let's code your future! So, hit the subscribe button and turn on the notification bell so you won't miss any new videos! 🔔
    ---------------
    #SkillFoundry

КОМЕНТАРІ • 40

  • @ssmith5048
    @ssmith5048 9 місяців тому +5

    Couldn´t agree more. I use python, but as a necessary evil - it is convenient, and a good glue / scripting language (but I don`t like python ) but yeah the C based languages are much better to learn the fundamentals and concepts imo.

    • @SkillFoundryIO
      @SkillFoundryIO  9 місяців тому +1

      Curious: Is the reason you don't like Python mostly around the white space having meaning? I also use it from time to time in that scripting and glue scenario and even after years the white space bothers me.

  • @michaelnurse9089
    @michaelnurse9089 9 місяців тому +1

    Learned Python before C# - found the transition to static typing very difficult to get my mind around.

    • @SkillFoundryIO
      @SkillFoundryIO  9 місяців тому

      That's very common and something I've noticed over the years. It seems much easier to go from a static-typed to a dynamic language than vice-versa.

  • @zalty8556
    @zalty8556 9 місяців тому +1

    I think people should start in assembly 🗿

  • @ChelovegII
    @ChelovegII 9 місяців тому +1

    I disagree, your first language doesn't necessarily need to be the one you're going to find a job in (as much as I'd like to be a Pascal or VB6 developer lol), it needs to teach you core concepts of programming. Python is great because it allows a layperson to quickly see smth working on screen and that is a must for getting more people interesed, especially kids

    • @SkillFoundryIO
      @SkillFoundryIO  9 місяців тому +1

      For kids something like Scratch is wonderful. BASIC was my first language way back in the Commodore 64 days.
      My channel and focus is generally on college/adult learners and career changers, which is the lens through which I'm evaluating Python as a first language. Installing python tools and doing a Print versus installing Visual Studio and doing a Console.WriteLine() isn't a huge leap and for adult learners time is precious and finite, so spending much time on a language that is difficult to find a job in isn't a good use of their time imho.

    • @ChelovegII
      @ChelovegII 9 місяців тому +1

      @@SkillFoundryIO Python still allows you to focus on the task when you're learning core concepts like algorithms instead of trying to allocate memory for a dynamic array, besides Python's syntax isn't too dissimilar to other popular languages. Imagine starting with smth like Rust as your fist language, it will absolutely overload your mind with its anal-retentive rules. Besides, a quick Python project will show you if programming is truly smth you enjoy doing or not before allocating more of your precious time to learn a more low-level language

  • @flesz_
    @flesz_ 5 місяців тому

    Start with Go, one and only language you need

  • @matthewkaras7722
    @matthewkaras7722 9 місяців тому

    No one should be learning C, C++, or Java as their first language. Do you want learners to deal with CMAKE and undefined behavior? What? Hello?
    Golang, Python, Kotlin, Rust, Scala and a host of other languages do more things right.
    I'd rather write inefficient Rust code than naive C++.

    • @SkillFoundryIO
      @SkillFoundryIO  9 місяців тому +1

      And yet, the people who built most of the infrastructure in use today started with C, C++, and Java, and Java in particular remains the top overall language for developer jobs.
      "do more things right" is subjective, but Golang, Kotlin, Rust, and Scala combined have less overall available jobs today than Java as well.
      When you are a beginner, learning your first language, you want to pick something that has high transferability, teaches good structure and practices, and has a large pool of companies that use it so that the lottery of job searching is more in your favor. None of those 4 languages hits all of those marks.

  • @Mamika_AFK
    @Mamika_AFK 9 місяців тому +2

    Makes a lot of sense. I thought of learning Python as my second language, but now I'm considering C++, and python as a third.
    Personally, I'm not looking for a job, so it's more like a hobby for me... but I still wanna learn the hard way so I can pick up multiple languages in the future with ease.
    Great video as always Eric! 😄👍

    • @SkillFoundryIO
      @SkillFoundryIO  9 місяців тому +1

      C++ and Python are wildly different pathways though C++ will likely make you a better developer generalist, so if you're goal is just general knowledge and ease of learning future things, I'd go C++.
      If you're curious about data/ai, which is certainly an interesting pathway, python is an excellent choice.

    • @Mamika_AFK
      @Mamika_AFK 9 місяців тому +1

      @@SkillFoundryIO Definitely! I'm interested in multiple fields, such as game dev, 3d and 2d art software and tools, and physical robotics in the future... So I think that after I learn the 3 in order (C#, C++, Python) , I might be able to at least start in the most important fields 😅

    • @SkillFoundryIO
      @SkillFoundryIO  9 місяців тому +1

      You would be able to accomplish almost anything with those 3 languages!

  • @JorgeMartinez-xb2ks
    @JorgeMartinez-xb2ks 9 місяців тому +1

    Good video, thanks. Long time ago, Basic was my first language on the Sinclair Spectrum 48K. Then I learned Z80 Assembly and then C. If you learn C the right way it will be very easy to get into any other language. At that time the best book was K&R, but today I can recommend you Head First C as you will get a good understanding of Linux internals as well. The main problem starting with Python is that is an Object Oriented Language, which is not a bad thing per se, but I believe is better to begin with a more standard, imperative approach. I like OOP and it has its place, but I like the functional paradigm too, but I wouldn't recommend you starting with Elixir, which is a great language, but maybe not the best for a beginner.

    • @SkillFoundryIO
      @SkillFoundryIO  9 місяців тому

      Do you remember your transition from procedural to OOP? I started similarly in C and I don’t remember it being difficult but I’ve seen quite a few developers struggle.

    • @JorgeMartinez-xb2ks
      @JorgeMartinez-xb2ks 9 місяців тому

      @@SkillFoundryIO Yes, I remember well. It was at the university in 1988, and I didn't have any problems. The first language I saw with OOP was Actor, which was during the early days of GUIs. Maybe that's why it was so easy for me to understand, since OOP emerged at that time to solve the problems that came with GUIs and make code more organized (Actually, OOP appeared earlier, with Simula 67 & Smalltalk, but you get the idea). But yes, I also know people who have a lot of trouble assimilating it. I have a friend my age who only knows COBOL and can't understand it no matter how much I explain it to him. I've seen the same problem with functional programming. There are people who have a lot of trouble breaking free from the imperative paradigm. I love all approaches, so that's not my case.

  • @erictrinque6513
    @erictrinque6513 9 місяців тому

    nobody can learn Javascript.

    • @SkillFoundryIO
      @SkillFoundryIO  9 місяців тому +1

      Haha, you have no idea how much pain I felt putting it in A tier. I really dislike JavaScript, but it's everywhere, so *shrug*

  • @michaelnurse9089
    @michaelnurse9089 9 місяців тому

    Python is popular because
    1) It is used in academia for academia things
    2) It is used by data science and AI as a boot-loader for libraries written in C.
    3) It is used by real programmers for odd tasks - scrape a website or shorten 5000 file names.
    It is not broadly used for
    1) Front or Back end Web Dev
    2) Enterprise software

    • @SkillFoundryIO
      @SkillFoundryIO  9 місяців тому

      100%, I call this out in my tier list video as well.

  • @DevlogBill
    @DevlogBill 9 місяців тому +1

    Great video

  • @riccardoatwork5291
    @riccardoatwork5291 9 місяців тому

    Absolutely right, language popularity is key, and Python is popular only at "expert level".
    As for transferability , which is just as important, I would like to add one little thing.. about WHY a C based language offers so much more transferability.
    It' s because it' s statically typed.
    For best results, even if it is harder, you should start with a statically typed language.
    And especially if you need to become competent and employable in short period of time, without a "formal classical education" then paradoxically you have to start with a statically typed language.

    • @SkillFoundryIO
      @SkillFoundryIO  9 місяців тому +1

      Agreed. The other thing about static typing I love for beginners is it forces them to plan their structure. Removing this constraint makes skilled engineers more productive but for beginners it tends to make spaghetti code.
      Of course you can write bad code in any language, it’s just easier to do so in non static typed ones imho.

  • @cbbcbb6803
    @cbbcbb6803 9 місяців тому

    From my experience, the best thing is to have congenital and competent instructors. That includes face to face teachers and books and online.
    When I started as a professional programmer, decades ago, I used the scripting language for dBase as a Pseudocode to design programs that were actually coded in other languages.

    • @SkillFoundryIO
      @SkillFoundryIO  9 місяців тому

      Quality feedback and mentorship is invaluable!

  • @Chalisque
    @Chalisque 9 місяців тому

    What you're saying applies to the _second_ language (or _next_ language) a beginner learns. The purpose of the first is to learn logic, control flow, and simple concepts which are common to essentially all programming. Python excels at that. Then, you must choose between e.g. C++, C#, Javascript, Java,or whatever as your _second_ language, and perhaps the first language you intend to use to seek a career. But even if you want to get a career coding in C++, that doesn't make C++ a good language for a complete beginner to try to learn.

    • @SkillFoundryIO
      @SkillFoundryIO  9 місяців тому

      In general I can't recommend a language that doesn't teach type safety. Beginners have enough to worry about without turning minor mistakes into runtime mistakes. I've taught a few thousand people at this point and the ones who start with Python and/or JavaScript generally have signficant issues with code structure and creating complex applications that others who start out with that structure avoid.
      I also think the whole readabilty/easy thing is overblown.
      if b > a:
      DoSomething()
      if(b > a)
      {
      DoSomething()
      }
      Is not insurmountable for anyone!

  • @austinbachurski7906
    @austinbachurski7906 9 місяців тому

    Not being able to explicitly control lifetime and scope drives me nuts in Python. Maybe it’s just the modules I’ve used, but when I say ”del thing”. Thing should not be caching it’s data somewhere and screw up my program the next time I call thing, expecting fresh data, yet getting the data from the previous call. Give me my braces and semicolons any day of the week.

    • @SkillFoundryIO
      @SkillFoundryIO  9 місяців тому +1

      Something satisfying about putting everything in its place and tying off statements eh?

  • @rverm1000
    @rverm1000 9 місяців тому

    As far as getting a job yea maybe on of the c languages are good. As far as learning to program first python works

    • @SkillFoundryIO
      @SkillFoundryIO  9 місяців тому +2

      No issues with that, that's why I specifically looked through the lens of someone going for their first developer job. :)

  • @camels_are_sober
    @camels_are_sober 9 місяців тому

    Starting with C and C++ is a great way to turn people off programming all together. I did my 101 in C and didn’t do any programming after that. I ended-up learning python to do some Raspberry Pi and finally get programming. Today I love C and programming in general.Once I knew basics of programming all languages started making sense but C shouldn’t be the language where you learn about variables loops control flow etc.
    Maybe better approach is to learn python and do some code immediately being productive and move to C# / java . I dont think C or C++ are great second language either. You may pick up and pick them up quickly if you are familiar with Java and python both. Personal preference though. Great video.

    • @SkillFoundryIO
      @SkillFoundryIO  9 місяців тому

      I generally advise people to start with C# and Java.
      I think that C/C++ in college are poorly taught which is a bigger problem then the languages themselves.