STOP Learning These Programming Languages (for Beginners)

Поделиться
HTML-код
  • Опубликовано: 15 янв 2023
  • Stop trying to learn every programming language. In this video I'm going to tell you which languages you should avoid (if you're new to programming).
    📄 ** DOWNLOAD MY FREE STUDY MANUAL **
    To download my FREE Self-Taught Programmer Study Manual PDF go to: andysterkowitz.com/study-manual/
  • НаукаНаука

Комментарии • 1,9 тыс.

  • @AndySterkowitz
    @AndySterkowitz  Год назад +180

    What programming language did you choose to be your first?

    • @afshah.7972
      @afshah.7972 Год назад +38

      I just started my journey in IT path. Did a bit of html and css and never used JS, but will start it from today. 💪

    • @lilalj07
      @lilalj07 Год назад +6

      Hi Andy, thanks for your content. I've been looking into your mentorship program this past week, and another program, The Launch School. Ruby on Rails and Javascript are the two beginner paths that are offered at The Launch School. Any thoughts on Ruby on Rails?

    • @abdulrahmanagboolaosho3582
      @abdulrahmanagboolaosho3582 Год назад +19

      I started with JavaScript

    • @songlore4617
      @songlore4617 Год назад +10

      I think it was javascript, followed by python. I"m studying kotlin but I'm also studying react native for versatility. I'm finding studying java helps me understand kotlin a bit better.

    • @adrimathlener8008
      @adrimathlener8008 Год назад +21

      I started out with Apple ][ Basic, then Fortran. So yes that was decades ago 🙂
      Nowe I'm on the path of Python

  • @kevinvikan3609
    @kevinvikan3609 Год назад +271

    To me Javascript was the first one. This is because I started learning to code with a few books that have interactive content that happen to be about Javascript.

    • @blearbenin
      @blearbenin 2 месяца назад +1

      what are books with interactive content?

    • @epicgaming7813
      @epicgaming7813 10 дней назад

      @@blearbenin
      I assume it’s something like “test this out/try this in JavaScript:” or “try programming this:” or something like that

  • @user3027
    @user3027 Год назад +575

    At my university, we started with C as the introductory language. Once you know and understand the concepts, it's trivially easy to learn a more high level language or go into an object oriented language. I'm happy the program made the choice to teach us C first.

    • @danielmihalache8954
      @danielmihalache8954 Год назад +49

      Same here. C/C++ is a great first choice, you don't have to master it, but it's great for learning the basics. I wouldn't recommend a dynamically typed language as first choice, the data types are one of the first things you have to wrap your head around no matter what language you learn

    • @ciberkid22
      @ciberkid22 Год назад +5

      I started my computer science path in high school and they started with Java (after using Scratch and Alice to introduce the basic concepts). Java did ultimately help me learn the basics of coding but I think I rather spec into Python or JavaScript lol

    • @chickenmadness1732
      @chickenmadness1732 Год назад +7

      Same. C++ was my first language and I don't even have to study other languages to use them now. I just get them.

    • @anon-fz2bo
      @anon-fz2bo Год назад +2

      Yeah we used c in college too, was nice coz I went into the degree already knowing a lot about cs.

    • @wesleymarques2468
      @wesleymarques2468 Год назад +1

      Same here

  • @aybgim3850
    @aybgim3850 Год назад +564

    I couldn't disagree more. I learned C++ first, then Java, then Python, and became productive fairly quickly with each of them. But having decades of programming experience, I still find JavaScript unnecessarily complicated, and actually prefer Typescript. I personally would never recommend JS as the first language. Python may be OK but you will still miss very important concepts. Setting up a dev environment with C++ or Java is easy - just get a decent IDE. And most importantly: static typing is your best friend while learning to code. It will help you to avoid bad habits at the very beginning.

    • @botangabriel3492
      @botangabriel3492 Год назад +30

      Learning C++ as my first programming language

    • @mtemuulen3829
      @mtemuulen3829 Год назад +18

      I agree. I ve begann with transistors and build my first ADDers. Everyone should begin with transistor.

    • @BenedictJasonArmah-mm3de
      @BenedictJasonArmah-mm3de Год назад +19

      Oh, i also learned C++ first, then Java next, I am working on python, but cuz of C++, i managed to pick java and python easily and i help my friends solve problems in other languages without even knowing the syntax due to the solid basics learnt in C++ and java

    • @JoneeL
      @JoneeL Год назад +3

      if you prefer type script look into Dart language and flutter framework

    • @owen261
      @owen261 Год назад +20

      I think hes recommending JS due to the amount of jobs it can get you. Most people who watch these videos are wanting to go into frontend dev not like an linux kernel engineer lol.

  • @j.l.61
    @j.l.61 Год назад +289

    C was my first language because of Harvard's CS-50. It was a pain in the beginning for sure, but I think Harvard has that same idea of C being the "right" way to be introduced to CS. After that I spent time with JS a little before settling on Python and SQL. I use Python every day for work automating my workflow and developing network applictations for Cisco platforms.

    • @AdrianFRacing
      @AdrianFRacing Год назад +1

      Hi there, thank you for sharing. May I ask you how long did it take you to learn all of this?

    • @tylercoombs1
      @tylercoombs1 Год назад +32

      I like how they start off the first week with Scratch and then just throw you into the deep end with C LOL

    • @j.l.61
      @j.l.61 Год назад +14

      @@tylercoombs1 I know! The first couple assignments I was so lost. They didn't explain any of it in the lectures! Had to Google my way through it like a real dev haha.

    • @j.l.61
      @j.l.61 Год назад +3

      @@AdrianFRacing I took CS-50 back in 2018. I worked on different things after that but I started studying python and sql after I got my CCNA in 2020.

    • @AdrianFRacing
      @AdrianFRacing Год назад +3

      @@j.l.61 Thank you, I have a loooong long journey ahead of me :))

  • @r.b.ratieta6111
    @r.b.ratieta6111 Год назад +36

    Funny thing, after dabbling with different languages, your conclusions were similar to mine. I did JavaScript in college because that's what they started people in the CS pathway on. I didn't finish college, but I was intrigued by the analytical and experimental parts of programming that I started experimenting with other languages. I tried C next, which, like you mentioned, was readable for a novice in terms of what the code is generally trying to say, but a bit of a learning curve. Other people recommended Python as a starter language, and that's what I'm working on right now, and while I get that JavaScript was considered a good starter language by my college, Python actually made more sense to me because, yes, while bloated compared to C and Assembly, Python is more or less like, "If you can organize your drawers, folders and binders, Python will make a lot of sense to you."
    Thus far my goal is to learn/master Python, then eventually work my way back down to the C languages, then eventually Assembly.
    If I could land a job with it that would be great, but honestly, even if I don't, I just like the ability to "talk" to machines and use them to create things. There's a fascination aspect alongside it that extends beyond sheer practicality.
    Got to keep the brain active and neurons healthy. The more you learn, the more capable you become, the better you can understand the world around you.

    • @Smurdy1
      @Smurdy1 Месяц назад +1

      For me my fascination with talking to machines is what makes me want to go lower and lower level. These days I'm learning assembly for the sole reason that I think it's really cool and fun to talk that closely with a machine.

  • @gerardgauthier4876
    @gerardgauthier4876 Год назад +18

    I always felt that the bottom up approach worked best for programmers that 'really' wanted to understand how programs work.
    Myself, when asked, I always recommend C followed by ASM. I find if the student can master C (C language, extensions, standard library, bin utils, etc), then they can move into other languages with some understanding of what's going on under the hood.
    Note: An additional plus for C is that its pretty much ubiquitous in programming.

    • @johnsonogbu8697
      @johnsonogbu8697 6 месяцев назад +1

      Assembly, C those are the best to start with.

    • @soosh9852
      @soosh9852 6 месяцев назад

      Assembly would probably be the absolute worst choice for someone completely new to programming@@johnsonogbu8697

  • @v.nd.tt.s8943
    @v.nd.tt.s8943 Год назад +10

    Yeah, I personally initially wanted to start with C++ But then realized that I know too little to do anything so I decided to switch to learning Html/Css and that was pretty fun.
    Then I did a tiny bit of JS, got to know how the learning process works and only then I switched to C#.
    Generally it's not easy but I manage to make small bits of progress each time and keep myself engaged into the process.
    I definitely don't get completely stuck.

  • @bobbydavis4144
    @bobbydavis4144 Год назад +38

    Best thing I ever heard pertaining to C++ and difficulty was from Bjarne when asked to describe C++ difficulty, "C gives the opportunity to really shoot yourself in the foot if you aren't careful. C++ will blow your whole damn leg off." Or something to that effect, it was a quote that was shared to us on our first day of class in OOP in C++. C++ is an amazing and powerful tool for programming, but not an easy one.

    • @arthurtamerango1089
      @arthurtamerango1089 Год назад +17

      That is a misquote. The real quote goes.
      "C makes it very ease to shoot yourself in the foot. C++ makes it very difficult to shoot yourself in the foot, but when you do you blow your whole leg off." The purpose of the quote was to represent C++ attempts at protecting programmers

    • @BrunodeSouzaLino
      @BrunodeSouzaLino Год назад +3

      C++ is about as difficult to learn nowadays as C#. I feel most of the talks about manual memory management are blown out of proportion or greatly exaggerated...Or come from people being fed garbage by programmers which still can't move on from C++98, where you did have to manually manage memory or hamfist C code because the C++ equivalent didn't have the performance you wanted.

  • @ericdavidheredia
    @ericdavidheredia Год назад +93

    I remember watching some of your first videos, they really helped me out and I'm sure they're doing the same for other people as well. I went from a starbucks barista to a developer 4 years ago. Glad to see your channel is doing well, keep up the great work!

    • @kaycampbell364
      @kaycampbell364 Год назад +4

      please could you share topic list or resources that help you learn

    • @Jrej_dev
      @Jrej_dev Год назад +5

      Same experience. I watched Andy's videos when he had just started. I went from hotel receptionist to full stack dev. Never looked back. Thanks Andy!

    • @graphicdesigner7650
      @graphicdesigner7650 Год назад

      Congratulations on your new career! I want to add programming to my resume and I feel a little more encouraged. Good luck in all of your endeavors. 🙂

    • @georgiosdoumas2446
      @georgiosdoumas2446 Год назад +3

      And I have been watching his videos since 2005, and went from a garbage collector of the street trash, to a C embedded developer, wondering why C does not have a "garbage collector" feature , hehe!

    • @kaycampbell364
      @kaycampbell364 Год назад

      @@georgiosdoumas2446 how did you learn please

  • @LegoSciGuy
    @LegoSciGuy Год назад +2

    great video. If you had a child in 7th grade. and they were going to take a coding class, what would you like their coding language to be? Just learning through block coding or is there a language that is appropriate for that age that lends itself to a more advanced language in high school or beyond?

  • @gustavorosas5353
    @gustavorosas5353 Год назад +9

    As a CS student I can say that it's always good to rely on a language that needs only a few things to get up and running. However, I may also say that when I started, Java was the language I was introduced to CS to and, now that I am moving on to automating things with python and developing web pages with JS, the transition between a language like Java or C# to a high level language is way more easy and quick than doing it backwards.

    • @acasualviewer5861
      @acasualviewer5861 Год назад +1

      Java isn't a high level language?

    • @ShootingUtah
      @ShootingUtah 4 месяца назад

      Java and C# are both "high level" languages, at least they're considered to be by most people. At least C# still allows the use of pointers and "unsafe" mode where you can basically mimic C++. I don't think Java has such capabilities. So Java would be an even higher level language than C#

  • @paulkeating9259
    @paulkeating9259 Год назад +49

    Hey Andy big fan, you helped me when days were tough going the self taught route, but I'd have to majorly disagree about C# /Java, These are widely use and have big communities like you said, But more importantly it can teach you about strictly typed languages which makes move over to say something like Javascript a breeze and once you are there you practically get Typescript for free. I dont think its hard to install visual studio and get up and running. Most of the free coding courses will even hold your hand throughout this whole process.

  • @MacySpitfire
    @MacySpitfire Год назад +15

    Funny thing. As 3D Technical Generalist wanting to go more into Technical Art and having to chose between C++, C# and Python, decided to go with Python and C# mainly cause of Python being widely used as scripting language for major software in game dev, but also as regular programing language and recenlty i fallen in love with it cause i automate everything, and C# mostly cause its Unity's scripting language and me having the most experience with that software (and i love C#). I tried C++ and maybe will try it next year but man i am pretty happy with my choices. Good video tho

    • @bjbell52
      @bjbell52 Год назад +1

      I always thought of C# as Borland's Delphi with a C syntax. Pascal was the first higher level language I learned so I prefer Delphi (or the public domain workalike Lazarus). I guess I picked a Pascal based language out of what is known as Baby Duck Syndrome.

  • @WY.C64-Guy
    @WY.C64-Guy Год назад +5

    I needed this video last September.
    My 11th grade daughter, wanting to impress her dad, took an intro to computer programming class during 1st semester this school year. Come to find out it was taught in C#, and she ended up frustrated the entire semester. She got a decent grade mostly from doing well on tests and turning in extra credit reports on computer history topics. :-/

    • @LuealEythernddare
      @LuealEythernddare 9 дней назад +1

      I mean C# isn't terrible, depending on how it's taught. My earlier college classes were taught mostly in VB and C#, they did most things in Winforms, which makes it trivially easy to get GUI applications running. Now if they're using UWP or Xamarin, that is much more complicated.

  • @blacktigershearthstoneadve6905
    @blacktigershearthstoneadve6905 Год назад +9

    Programming is hard. Just be a taxi driver.

    • @jagggyjazz8010
      @jagggyjazz8010 День назад

      Seeing that someone who codes and drives makes nearly the same just choose what you like I think in terms of their own benefits and drawbacks I guess

  • @cbbcbb6803
    @cbbcbb6803 Год назад +32

    I think the most important aspect of learning anything is the talent and patients of the teacher and the quality of the learning materials. Also, realize that you don't learn the entire programming language all at once. For any language, you may even never use large chunks of it.

    • @maxmuster7003
      @maxmuster7003 Год назад +2

      There was no teacher and no internet when i started to learn programming.

    • @AndrewDCDrummond
      @AndrewDCDrummond Год назад

      @@maxmuster7003 what year was that then?

    • @maxmuster7003
      @maxmuster7003 Год назад

      @@AndrewDCDrummond In the stone age of MS DOS on 16 bit PC intel 80286.

    • @AndrewDCDrummond
      @AndrewDCDrummond Год назад +3

      @@maxmuster7003 we are talking about beginning programming and learning good principles. K&R is a simple, short book that teaches you good principles and style. I read a lot of programming books and I don’t see any that compare to books from that era.

    • @AndrewDCDrummond
      @AndrewDCDrummond Год назад +1

      @@maxmuster7003 also what is the predominant language used in Linux and Unix, and the Windows and Mac (pretty much Unix) kernels?

  • @hovardlee
    @hovardlee Год назад +112

    My first programming language was C++ cause it was required on 1st semester of my telecommunication studies. Regarding C++ you do not need to learn the low level stuff. You can focus on algorithms and data structures.
    As database programmer I can say that writing good SQL queries is an art :) Also there are extensions like T-SQL or PL/SQL which allow you to write programming like procedures or functions. But this is a different world :)
    If I could start again then Python.

    • @awesomebearaudiobooks
      @awesomebearaudiobooks Год назад

      Do you need PL/SQL in your work or can you just use Python for automation + normal SQL?

    • @hovardlee
      @hovardlee Год назад +2

      @@awesomebearaudiobooks
      For procedures I use now T-Sql in Azure. I used to use procedures in Pl/sql in data warehouses.

    • @bitwisetube
      @bitwisetube Год назад +4

      I very happy my first language was C++

    • @bennymountain1
      @bennymountain1 Год назад +3

      My condolences

    • @stanknight9159
      @stanknight9159 Год назад

      @@awesomebearaudiobooks I would say that learning SQL makes you quicker. I put off learning SQL for a while and that hindered me.
      But SQL isn't as bad as it looks. I realized that only the hard things that I learned were things I deemed to be 'hard to learn'.

  • @vincentjohnston8789
    @vincentjohnston8789 Год назад +4

    Gr8 inspiring video Andy! I am from the almost 'Atlantean' era of the Commodore 64 (which features in the John Wick movie series), the BBC home computer, the MSX, ZX Spectrum,ZX81 and fantastic OS's like MS DOS combined with COBOL and BASIC - in those days when you turned on the computer you had to write some coding just to search for a file. I currently enjoy HTML and CSS and still get a buzz from tweeking my website using code.

  • @karlwiklund2108
    @karlwiklund2108 Год назад +10

    It depends on purpose and context. A good language for teaching programming and/or CS concepts. If I had to choose, I'd go with Pascal or C. They're very good for elucidating concepts like control flow, procedural programming, etc including data structures and algorithms. They also enforce good habits.
    Memory management isn't that onerous, since much of the time you can use fixed-length arrays, rather than directly deal with the mechanics. But on the other hand, it's useful to know how memory and addressing actually work, and not just treat the machine like a magic box.

    • @Aim54Delta
      @Aim54Delta Год назад +2

      I generally have come to refer to programmers as people who understand that they are using a calculator on steroids to make things work and endeavor to make efficient use of that calculator.
      People who simply write code are script kiddies.
      The distinction appears elitist and divisive until you run into a programming crisis or severe hardware constraint for some sort of application.

    • @Aim54Delta
      @Aim54Delta Год назад

      @Nicholas Millington
      Who do you think writes the compilers and the hardware libraries?
      Or deploys the same exploits against copy-pasta code or vulnerabilities in compiler implementations of instructions?
      You're getting needlessly defensive as we are only partially in disagreement. We agree on a criticism of what it is that stands as an obstacle. Functional code is superior to the idea of optimized code that never runs. If you would read, that is accounted for. I state that one needs an understanding of a language to be able to design and implement code.
      You are also correct in that optimization is "only crucial" for situations where the volume of computations is of significance. Obviously, an algorithm for resolving differential equations, even if done in a creatively inefficient way, would almost certainly be quicker than a human being and any such successful program valuable to an end user. Today's hardware is extremely powerful and getting into the nitty gritty of how many cycles a core is idle or has a cache/heap miss is really only valuable when we are programming things like graphics engines or military ELINT software/hardware (where do you think I encountered such constraints?)
      Where we disagree is on the value assessment. Basically, script kiddies are incapable, as you demonstrate, of assessing their value because they do not understand the hardware they are working with, and in many cases do not believe they need to. I am not incapable of learning a high level language or using it. The converse, that script kiddies are able to understand low level code and execution, is not universally true.

    • @stryider564
      @stryider564 Год назад

      @@Aim54Delta I’m confused. Unless a person knows how to build compilers and assemblers they aren’t a real programmer? How far down does that go? Machine language which requires neither? I’m actually asking because my definition of a script kiddie doesn’t match.
      What low level language(s) does a person need to know in order to not be a script kiddie in your view?

    • @Aim54Delta
      @Aim54Delta Год назад +3

      @@stryider564
      It's not so much about what language they know, but about their view of the machine. For example, a programmer who does not understand the distinction between a float and an integer is being a script kiddie... while someone who argues they do not need to know such things -is- a script kiddie. Similarly, understanding memory allocation and garbage collection is the difference between a script kiddie and a programmer.
      A programmer is able to engage at the level of language necessary to complete the programming task. If there is no library, they write it. If they need more performance, they abalyze the compiler's output and look for possible ways to improve that performance. As an old example, rendering things as integers that can be handled as integers even if we intuit them as a float can distribute processing to often under-utilized parts of the hardware. On the other hand, recognizing you can use an instruction set to simplify some kind of pathfinding routine into fewer clocks might pay off (though I don't expect most people to be fluent in vector math and the kinds of math theory that go into custom compiler scripts).
      The point is that if I hand a programmer a piece of hardware and a program I want to get to run on it - a programmer will wring performance out of that piece of hardware. They may not initially have the knowledge or skills to do it off hand, but they will naturally hunt for ways to make it happen. Programmers had a raytracing engine on the super nintendo as part of a functional game (jurassic park, of all things, a movie title). They had full screen animated cutscenes on the Sega Genesis (Sonic). Programmers are given a task and a piece of hardware and they return with either a success or an exact explanation of what needs to change about the hardware constraints to achieve the goal (and a few of them are probably still arguing there's another thing to try).
      My background is digital electronics, analog electronics (op amps and the like), as well as avionics. I'm at home thinking in terms of logic gates and differential amplifiers - which is to say, verilog and/or HDL - which are the languages used to generate CPU and FPGA die images...
      But I don't really consider myself a "real programmer" because most of my forrays into programming are to program hardware to respond to input sequences the way I want. The larger picture of designing, say, a physics simulation engine is more than I have taken on.
      Although I have been working on a project I intend to open source as a competitor to the AEGIS II suite ... that's another story and mostly database and signal processing libraries.

    • @kokop1107
      @kokop1107 5 месяцев назад

      Pascal? In this day and age?? That's a joke right. You can't genuinely think that that makes for a good beginner language.

  • @matthewfeatherston8982
    @matthewfeatherston8982 Год назад +98

    My first programming language was Java due to what my University made us learn... I did not find it that bad, but there was definitely a learning curve... My first programming job, which I still have after three years ;), made me learn C and OpenGL.... Now those were some heavy hitters between pointers and addresses it was enough to drive me crazy 😜

    • @Asgaia
      @Asgaia Год назад +3

      Guess you cuddle the else.

    • @georgiosdoumas2446
      @georgiosdoumas2446 Год назад +1

      C and OpenGL? So what is your work? Some 3D rendering software?

    • @generalknowledge4all
      @generalknowledge4all Год назад +1

      Always fear pointers and data structures.. So afraid of C 😂

    • @AndrewDCDrummond
      @AndrewDCDrummond Год назад +5

      @@generalknowledge4all what's the problem with pointers, a variable name is basically a fixed pointer to a memory space, you can just move pointers around. Just work through the excellent K&R book, it's excellent and pretty easy.

    • @marloelefant7500
      @marloelefant7500 Год назад +6

      @@AndrewDCDrummond Conceptually yes, but with a pointer comes great responsibility. You have to always keep in mind the lifetime of the object pointed to and make sure that it's resource is freed in time in all possible program paths. When working with C++, I usually only work with smart pointers or references.

  • @anshjadhav7918
    @anshjadhav7918 Год назад +41

    I would definitely recommend to start coding in C++ or Java. These only two languages can build your programming concepts at the best level.

    • @AZ-gs6hj
      @AZ-gs6hj Год назад +5

      I agree. Java is a very good choice. Glad it was my first

    • @jimmorrison2657
      @jimmorrison2657 Год назад +5

      @@AZ-gs6hj I agree about Java. But C++ is definitely not for beginners.

    • @KratosVS
      @KratosVS Год назад

      I love Java lol

    • @jimmorrison2657
      @jimmorrison2657 Год назад

      @@KratosVS It's a great language, mate. And it will be around for a long time yet👍

    • @dutchdykefinger
      @dutchdykefinger Год назад

      Started with php, got a taste of C withlut typecasting for a quick start lol

  • @RobertSpiller
    @RobertSpiller Год назад

    Andy, I've got something for you. a challenge. I'm new at all of this coding thing, and I'm looking for another laptop. Would you take a chance on an older HP Elitebook 840 G3 with 16GB of ram, and 512 SSD? And it's only $200, or wait for an Acer newest laptop with the same specs and cost a little over $400?

  • @friedamah7657
    @friedamah7657 11 месяцев назад

    May I ask a question? Does VB fit writing a medical app to find how to use herbal knowledge to write a herbal prescription for a disease? If it cannot handle the diagnosis complexibility, what language is better to use? It also involves some kinds of database build up. Should I also learn another language to meet my needs? As a beginner coder, please give me your advice. Thanks.

  • @jons_RoadtoCode
    @jons_RoadtoCode Год назад +51

    I agree with this, as someone starting the self-taught route, I found that JS (along with html/css) allowed me to keep interested in the journey, especially after failing then finally succeeding at some of the most "simple" projects.

    • @MissoyKE
      @MissoyKE Год назад +2

      I have friends who would argue otherwise thou. As much as web keeps you interested in the programming journey since you can see what you have done displayed, the perception of wanting to see what you have done will be missing when you start working on C or other programming language and you'll keep reverting to web dev every time you hit an obstacle while trying another programming language.

    • @jons_RoadtoCode
      @jons_RoadtoCode Год назад +1

      @@MissoyKE Excellent point. Hopefully at that point (learning another language), those who do undertake a 2nd, 3rd, 4th language etc have already acknowledged this. Being able to see your progress when first learning is a good stepping stone in my opinion.

  • @traezeeofor
    @traezeeofor Год назад +21

    Excellent video as always Andy, thanks so much.
    But the PDF is 67MB yet just 12 pages; based on past experience I definitely believe it could be way smaller and still be of great quality.
    Please keep doing what you do. You're an inspiration to so many of us.

  • @gustavodill3819
    @gustavodill3819 Год назад +2

    About learning C++ in my experience I can't say I mastered the language, but coming from C#/python what I noticed is: The language itself is not hard. What pains you is to learn what the error messages are. You need to learn how the code gets processed, that is: Preprocessor -> Compiler -> Linker -> Executable. Learn a little on wtf the template errors mean. The rest is basically the same as the other languages (logic and stuff) you just get to do you memory management. If I'm wrong in anything pls correct me as I'm still learning as well :)

  • @graphicdesigner7650
    @graphicdesigner7650 Год назад

    Thank you! I am preparing to add web coding to my list of skills and I was overwhelmed by the number of programs. Now I feel better about streamlining my course list and I can stay focused on what I need to know for now. 😀

  • @thecodebrief
    @thecodebrief Год назад +10

    Lord have mercy on the guy who picks up C++ as their beginner language. That being said - the one mate that did this is the best programmer out of all of us in my circle now lmao

    • @IgorMgtowandVideoGames
      @IgorMgtowandVideoGames Год назад +1

      I picked regular C. What about C-- (C minus minus) for beginners

    • @rrokluli7392
      @rrokluli7392 Год назад +2

      I have learned it in University after C classes and C++ is rocket science programming language and i love it. But Job perspectives are in JS, Java , C# for web development. C++ still matters in specific industries

  • @MgelikaXevi
    @MgelikaXevi Год назад +4

    agreed. Another reason to skip C++ for now - it is more like "specific industry language" . For example, my city lacks demand for it as there are only few companies in related industries, but everything "web-based" is booming, because it has a wider circle of clients.
    Also, a potential problem if you are self-taught - even those few job opportunities we have in C++ - have a requirement of a specific university degree.
    So you might check your local job market. Mb it is different, but it is always aa good idea to be sure

  • @ViceCoin
    @ViceCoin Год назад +1

    What languages can be developed on an Android tablet?

  • @randall.chamberlain
    @randall.chamberlain 10 месяцев назад +4

    As an Engineer with 25 years experience I love to see guys like you really helping the next generations to come. Your advice is balanced and very sound. I hope all deva wannabes listen and follow you.

    • @EyeseeUriP
      @EyeseeUriP 9 месяцев назад

      oooooh an engineer LOL

    • @EpicGamer-ny1fu
      @EpicGamer-ny1fu 8 месяцев назад +4

      he's not helping anyone by recommending Python and JavaScript as first languages....

  • @jamesknauer540
    @jamesknauer540 Год назад +14

    Thank you for this. Did all your don't's and could not agree more, having been at it since 1978 (FORTRAN on punch cards). The best language I encountered for what it needed to do was Turbo PASCAL, and later Delphi, up to a point. Anything was possible, and if it wasn't fast enough you could get away with inline assembly code for the tricky bits.
    Well done, Sir!

    • @mariagheorghe7139
      @mariagheorghe7139 6 месяцев назад +1

      Oh Pascal was my first exposure to programming, and then VBA. When almost nobody mentions these in recent times it makes me feel old.

    • @hermanstokbrood
      @hermanstokbrood 5 месяцев назад

      If Delphi still gives you good memories, perhaps you could give Delphi CE (community edition) a look. It's free as long you don't earn more than $5k annually.

  • @danieljansen8795
    @danieljansen8795 Год назад +4

    Started with PHP/MySQL 20 years ago, afterwards I did some R script for a research project, went for Python like a year ago and ended up with Java & getting a career switch into the tech as Java developer quite recently. It doesn’t matter where with what language you start. You just need to love doing it and if you have no idea if you would ever love programming, I’d agree that JavaScript will get you the best starting thrills to love or hate programming.

  • @KBarn-lo7ip
    @KBarn-lo7ip Год назад

    How are you doing? I'm having a hard time opening the self-taught studying that you have. Would you happen to have it in a different format?

  • @AdvancedUser
    @AdvancedUser Год назад

    You said we should not start with Java, Kotlin and swift. Then which language should we start learning for Android Development?

  • @blueice1364
    @blueice1364 Год назад +16

    I usually recommend Java since it teaches you the fundamentals of any programming language like the most common datatypes and oop concepts (interface, abstraction, encapsulation etc) which resides in almost all programming languages in different shapes and forms. Once you learn the basic stuffs that you're gonna need anyway in any programming languages, the other stuffs becomes easy to grasp. I know it's hard to learn for beginners, but once you learn it seriously, you're set for life.
    I personally don't recommend js and python cause it makes you dumb in the sense that it does not teach you the fundamentals. True you can start building stuffs faster, but then when you ask them about any basic stuffs about programming, they are gonna try and relate to js and python which lacks many of those concepts or has a roundabout way of doing that, which does not truly answer your question.

    • @stalker200368
      @stalker200368 Год назад +2

      You expressed my thoughts really well. I hope js and python for beginners trend will someday go away.

    • @pumcia718
      @pumcia718 Год назад

      @@stalker200368 I am also in full agreement here. I can not in my right mind recommend any typeless language as a starting point. I still remember how my very 1st programming prof said "I don't like Java, it makes programmers lazy."" Java lazy is nothing compared to python lazy.

  • @FrocketGaming
    @FrocketGaming Год назад +27

    I think it depends a bit on the context of your learning. I learned SQL first because I needed it for work. It drove me to finally dive deep into Python so I could automate much of my SQL work.

    • @michaelhearmon9965
      @michaelhearmon9965 Год назад +1

      Same here, I learnt SQL on the job and then I picked up Python and C# to work with it. I think was a good start to real programming compared to what I actually started with, which was VBA

    • @MrMudbill
      @MrMudbill Год назад

      Similarly, one of my first real experiences with command lines were highly specific CMTS devices which are used for cable modems / internet access via radio waves in copper wires. I have since learned a lot more about command lines in general. So in that sense, I don't think SQL is necessarily a bad place to start, as long as you don't go in thinking you can create programs with it but rather learn it as a tool for a task.

    • @ADeeSHUPA
      @ADeeSHUPA Год назад

      @@MrMudbill ないす

    • @rik0904
      @rik0904 Год назад

      yep, that just mean that first language for any one should be, 'the one that give you fast benefit in real life'

  • @user-nj3zb7vy6v
    @user-nj3zb7vy6v 4 месяца назад +1

    Correct me if i am wrong (I'm a beginner). Ive heard swift is good long term since swift is used for all platforms not just app development and now that ar is out, I'm sure most of the software inside vision pro is going to be using swift as well.

  • @tmbrwn
    @tmbrwn 9 месяцев назад +1

    I started off with BASIC on the Apple II at my school's computer lab. I ended up trying to learn C/C++, ran into a wall, drifted from PHP to Ruby (pre-Rails) to Scheme R5RS to Python (kinda) to so many others. Lots of drifting. I'm still drifting. If I could go back in time to when I was just starting out, I would tell myself to spend less time worrying about which programing language to learn. When I was 12, the most liberating thing would've been for someone to just say, "Stop worrying about this. Just pick a language and use it to solve problems." Instead, I spent more time defending my choices than programming. If you're reading this, heed my warning. Watching too many videos like these will make your head explode. Just pick a language and solve problems. :)

  • @77Sherms
    @77Sherms Год назад +5

    Great video. I do think that learning some of the more challenging languages are good to give people an idea of what's involved in setting up an environment but I agree that it's better to learn something that's simpler to start coding in straight away. It removes the distractions and lets you focus on the fundamentals.

    • @nerdyali4154
      @nerdyali4154 Год назад

      I completely disagree. It means that you start programming without understanding the fundamentals. It's like saying it's good to start your career as a doctor by reading visually-based how to manuals on the job.

    • @PerteTotale
      @PerteTotale Год назад

      @@nerdyali4154 I've spoken with hordes of "programmers" and most not really having a good idea nor a realistic grasp of network concepts. my "network admin"/programmer could not get on my pc's, I prevented him spying on me, which got him more and more go nuts. On the other hand I consult all kinds of manuals or blogs or how to's in diff. languages regularly as I don't have to reinvent the hot water.

    • @77Sherms
      @77Sherms Год назад

      @@nerdyali4154 I don't think that's a good analogy. We're not saving lives or delivering babies. You obviously need to be highly experienced and qualified to be a doctor. There's a world of difference between programming and being a doctor. Also, not everyone is going to be a god level PhD programmer and you can learn things as you go along. You can learn what you need to know. I work with an engineer who didn't finish his CS degree. He became a qualified chef then went back into programming, created a startup and pitched his idea to a VC company that funded Uber.

  • @jacobflores8666
    @jacobflores8666 Год назад +24

    I'm absolutely not an expert but I feel like it's probably not a bad idea to pick a language you can see yourself working a job with in general. Personally, I picked R programming and Python because I'm an undergraduate math major. I'm hoping to get into a Ph.D. program so that I can do research in statistical learning theory and then eventually become a data scientist or statistician.

    • @alphonsoacqua
      @alphonsoacqua Год назад +2

      You absolutely picked the right two languages to learn.👍

    • @R3DC0DE
      @R3DC0DE 11 месяцев назад +2

      Take a look at julia. I pretty sure you will love it.

  • @neomangeo7822
    @neomangeo7822 Год назад +1

    I started with the HTML/CSS/JS then React route, then learned MERN for some fullstack knowledge. Was looking at C# and playing with it a bit while searching for a job and found a job that had a C# b ackend with React (and using Typescript) on the frontend, and MSSQL DB.
    I find it quite a good combination for quite a lot of reasons. With JS you learn functional paradigm usually (not always, depends), and C# is OOP paradigm. JS has prototypal inheritance, C# has classical inheritence. JS is interpreted and dynamically typed, C# is compiled and statically typed... And there are lots of other things opposite that the languages have/do (even though core concepts for these popular languages are translate, like data structures, the api's might be a bit different, but the concepts are basically the same). Those two languages seem to compliment your knowledge base and skillset really well.
    You could also ofc swap C# for Java. I think Python is really neat too but learning wise not quite as good paired with JS.

  • @friendsofasparagus
    @friendsofasparagus Год назад

    I downloaded your pdf and my phone was not able to open it? It's able to open every other pdf I've ever downloaded though. Do you know why your pdf is different?

  • @guillermoleon0216
    @guillermoleon0216 Год назад +7

    The moment I saw you discard C# and Java for "being difficult to set up" I knew you were going to recommend JS and Python. I agree on Java and maybe C# not being great for a first language because OOP should not be the first thing you learn. But I think another thing you need to consider for a first language is not having to deal with weird errors like JS with its type coercion and Python with identation errors. I still think C++ is a great learning tool because while you might have access to complex things, you won't stumble on them accidentally. By the time you know what a pointer is, you can already move on to OOP.

    • @gavinh7845
      @gavinh7845 Год назад

      C/C++ build chain is pretty confusing and avoiding pointer based footguns is probably a solid choice for absolute beginners.
      Both JS and Python have their warts, but syntax is pretty readable and with JS in particular it’s nice to be able to build something visual and interactive without a ton of setup.
      Ruby is probably a decent starter language as well. Maybe go 🤷‍♂️
      I think my first language was Visual Basic, then Java, C, and Ruby. My first internship after freshman year of college was Coldfusion :(

  • @guillermogomez4992
    @guillermogomez4992 11 месяцев назад +12

    That's interesting. I started in preparatory school with flowcharts to understand basic concepts like IF, FOR, and stuff like that. Then we moved on to C++, but I never did anything spectacular, just simple things. I didn't really understand what I was doing deep down; I was still stuck in the flowchart mindset. In fact, I got a 10 in Flowcharts, but I had difficulties with C++ because I wanted to understand the "why" behind things, like "static void" and stuff, but the teacher just said, "That's how you write it." Anyway, the only thing I remember from C++ is that you had to declare variables at the beginning and the famous "static void main."
    When Java came along, the same teacher said, "Get ready to suffer," "C++ is child's play compared to Java." This was about 14 years ago. And true to his word, it all started without libraries, pure and hardcore language. I remember some traumatic instructions (just a single line of code to print something to the console). I don't know if it was the quality of teaching, the time (years ago), or if I just wasn't cut out for it, but I wasn't the only one. The whole group failed. The only part I semi-enjoyed was when they taught us how to use user interface libraries in Java. I was obsessed with buttons, alerts, and stuff on the screen at that time. I think that's why I managed to create a small semi-animated interface. It felt like I was truly programming. The teacher said, "I'm going to pass you because I see you're putting in the effort."
    Anyway, when I got to university, it was hell. They assumed we already mastered Java and bombarded us with a bunch of libraries. I couldn't concentrate on learning because I wanted to know what was behind those libraries (I didn't understand the abstraction of it all), and that was my downfall. In addition, instantiations, classes, object-oriented programming, all with exercises that honestly didn't motivate anyone, took away all my desire to learn programming. It wasn't until I became obsessed with understanding what the university didn't have time to teach (due to the limited semester time, curriculum, etc.) that things started to change. I didn't become an expert by any means, but I began to grasp the abstraction of the concepts themselves. I created my own dictionary, an Excel file with every term I wanted to understand its meaning. I watched hundreds of videos and tutorials to "understand" rather than master the concepts themselves. I guess you could say I became an expert in "concepts." That calmed my restless mind, and I could focus better. Although I didn't know exactly what code was behind a library, I wasn't obsessed with it anymore. I also stopped obsessing over why something was called a "class," the difference between structured programming and object-oriented programming, the reason for "import" and "export," etc. (In fact, back in my day, if my memory serves me right, we still used inline styles in HTML; there wasn't the practice of separating the design into a CSS file.) In my restless mind, it didn't fit that programming was done in a different way, with different files calling each other, the topic of variable scope, "public," "private," and those things.
    In conclusion, times have changed. Now you can learn at your own pace, without the pressure of getting good grades or having incompetent teachers, which, believe it or not, can affect your morale when you're young. I think the best thing is to project what you want to achieve. Do you want to learn to teach? Do you want to focus on mobile apps? Web development? You have to enjoy your goal; that's the only way you'll put all your effort into it. If it helps, I was deeply wounded. I was afraid to look at code for years because of my traumas from university and some evil teachers. So, don't underestimate your initiative and enthusiasm. There are malicious people who can try to make you feel incompetent, and if you're weak like I was in my case, you could throw away all your talent.
    Now, the question everyone is asking: Can I program now? Well, like I said, it took me more than 10-12 years to get close to code again. I have no experience, and it's very strange because I don't really know how to code, but I can communicate with ChatGPT and explain all the concepts I've learned to make it do the things I want. In less than 2 months, I've "programmed" over 20 scripts in vanilla JS, purely based on concepts without ever having developed anything before. I even created a Tinder extension to compare compatibility between 2 profiles with AI using the OpenAI API. I'm 35, and I believe it's never too late (I dropped out of engineering in my fifth semester when I was 21). Precisely because I didn't pass Java and Math 5, I fell into depression, and the rest is history. I beg you, go for what you want, not what is imposed on you.

    • @manuelvasquez6925
      @manuelvasquez6925 11 месяцев назад +1

      I've just recently started a SIMPLE intro to computer application class and I'm killing it and I am somewhat interested in a computer career.. would you suggest coding?

  • @daschmitzi8403
    @daschmitzi8403 Год назад +2

    In my IT-HTL (HTL=Höhere technische Lehranstalt = higher technical college/school) we started with C#. Installing an IDE (like VS) and the SDK is not that hard. However, when it comes to fun programs and ideas you are right. At first you are very much bound to console applications, which can be hard to have fun with/make fun little projects. In school the teacher gives you the tasks (and hopefully tries to make them fun). We for example coded a chess game, a tic-tac-toe game and a Connect Four game.
    PS: actually we started with drawing pseudo code the first ~ 1-2 months.

  • @alexanderiidurante7216
    @alexanderiidurante7216 Год назад

    Thank you Andy for the wonderful pdf!

  • @leogarza5022
    @leogarza5022 Год назад +5

    C++ is widely used and important for game development, finance, robotics, systems-level programming and large, complex software systems. It is also the language that many libraries, frameworks and tools are written in, making it a valuable language to know. Not the friendliest, but I still think its worth while.

    • @florisvandenberg7424
      @florisvandenberg7424 10 месяцев назад

      Absolutely. C++ is a highly valuable language to learn, but it's not ideal as a starting point for beginners.

  • @AndrewDCDrummond
    @AndrewDCDrummond Год назад +20

    I would still suggest "The C Programming Language" 2nd Ed by Kernighan & Ritchie - brilliant book - anything Kernighan was involved with is superb. the book is short, good exercises and C is a simple language with 32 keywords. You are going to have to know about memory management, stacks and heaps if you want to be any sort of a decent and safe programmer, imho. And learning at this level makes the concepts you will meet in higher level languages much easier to grasp.

    • @xapimaze
      @xapimaze Год назад +1

      It's a great book for C. I would argue that it's not a great choice to be one's very first introduction to programming, though.

    • @StonedSidney
      @StonedSidney 8 месяцев назад

      Totally agree, I have that book and learned C on an Atari ST, but we're old farts! Young folks should get a ZX Spectrum and learn assembly code. It won't get you a job but neither will Python! No mention of J2EE seems odd. Lots of jobs there.

    • @jimbelcher6877
      @jimbelcher6877 7 месяцев назад

      A classic in the industry to be sure. I lived and breathed that book for my entire university time, and several years thereafter.

  • @riazmahmudhossain4898
    @riazmahmudhossain4898 Год назад

    Thanks Andy :) These tips help me a lot.

  • @stevenvdc681
    @stevenvdc681 5 месяцев назад

    I have reading writing difficulties how to make this program visual studio code speak to me when I put my cursor on a tag. I am learning python can you help me

  • @petrzurek5713
    @petrzurek5713 Год назад +3

    I would still make an argument for C#. Building GUIs or games with Unity/Godot can be pretty engaging. If you go the web route your are bound to need to learn a plethora of other technologies - bash/linux, html/css, JavaScript, databases, …

  • @jackiechan6460
    @jackiechan6460 Год назад +3

    I'm new to coding and got C# setup without a problem. Also BepInEx documentation is really straight forward on how to compile plugins against a game.
    I think saying skip C# because of a somewhat steep setup process can hurt the fun some people can be having.

  • @remmirath42
    @remmirath42 Год назад +2

    The first language I tried to learn (and failed miserably) was Python. The first language I actually learned was Perl. Some people call it "ugly" because of all the special characters, I call it "easy for a beginner to see what's going on".

  • @XDBjoernXD
    @XDBjoernXD 5 месяцев назад +2

    My first programming language was java in the university and I am very glad for that, putting the time into it. Subjectively it was quite a good experience to learn having a decent IDE helping you out with a debugger and other build in tools. Also the object-oriented paradigm felt natural for me with it's explicit static types giving you compiler errors, finding the problems earlier in the process.
    I sticked to Java since for me it has a nice feedback-loop to it and a lot of good resources.
    It is very hard to give a good advice. You may should try for yourself.

  • @katariina1713
    @katariina1713 Год назад +10

    Thank you Andy 🙏🏽
    You have lifted me up from a deep pit as I am a beginner struggling ☺️
    Our school teachers chose C# for our very first language.. some dropped out of class, its so frustrating at times..

    • @gnarfgnarf4004
      @gnarfgnarf4004 Год назад +1

      Which is why programmers get paid the big bucks...

    • @petrzurek5713
      @petrzurek5713 Год назад +1

      C# frustrating? Oh man, gotta find a good teacher on your own then. Like Tim Corey.

    • @williamforsyth6667
      @williamforsyth6667 Год назад +1

      @@petrzurek5713 "C# frustrating?"
      Most problems which take 5-10 mins to fix in JS, can be recognized in C#( with Visual Studio) even before compiling. Frustrating...

    • @petrzurek5713
      @petrzurek5713 Год назад +1

      @@williamforsyth6667 I think you completely misunderstood my reply to Katariina ... I was also wondering how anybody can find C# frustrating.

    • @williamforsyth6667
      @williamforsyth6667 Год назад

      @@petrzurek5713 Why, isn't it frustrating, that in C#/VS you recognize problems while typing, not allowing you the waste 5-10mins to struggle with them, like JS?
      - Sheldon, do I have to... hold up a sarcasm sign every time I open my mouth?
      - You have a sarcasm sign?

  • @Random_Food
    @Random_Food Год назад +32

    I agree with your suggestion. I went to a university and got a degree in computer science and this is the order that I was taught while in school.
    C++ (3 courses)
    C (1 course)
    Java (1 course)
    Swift (1 course)
    PHP/HTML/SQL (1 course)
    Python (1 course)
    And graduating from university, my first programming job we actually used C#.

    • @acasualviewer5861
      @acasualviewer5861 Год назад +4

      First rule of professional programming: whatever you learn in the past, you'll always need to learn something new for your job. It was certainly true for me of the last few decades.

    • @user-xe8oi5oq6c
      @user-xe8oi5oq6c Год назад +4

      One should learn C before C++.

    • @afshinmollaali
      @afshinmollaali Год назад +1

      For a professional programmers all the general propose languages are similar (course of "programming languages") and there is no classes or learning methods as good as writing code for real project

  • @KK-no7be
    @KK-no7be Год назад +1

    Which would be easier to learn between java script and python? Thanks.

    • @wellnesspathforme6236
      @wellnesspathforme6236 Год назад

      It might depend on your personality type, but I would much rather learn Python than JavaScript. I recommend you look into Ruby as a programming language, and you you look into Ruby on Rails as a framework to develop applications very quickly that fit its use case.
      Very quickly.

  • @ER3xW4ha7
    @ER3xW4ha7 Год назад

    Amazing video. I’m at the beginning of my journey into IT, and I know I’m gonna need a little bit of programming when I eventually end up in cybersec (my dream field). Programming, however, is my WEAKEST area. Networking is a breeze. Server administration isn’t as bad as my scripting, so. Anyway, thanks for the video! Short intro and I didn’t even realize the end was the end 😂 definitely earned a sub from me.

  • @nowelectric2811
    @nowelectric2811 Год назад +3

    In school we started with sql and now doing Java. I don’t think it’s so bad to start with. Of course syntax in java is a bit complex but sql for example is very easy in my opinion and has a use too. Knowing how to see search data in relational databases is quite useful if you want to extract data out of a huge database

    • @valkaielod
      @valkaielod Год назад

      It would be very useful for illustrating math concepts.

    • @germanher7528
      @germanher7528 Год назад

      SQL is easy cause its use is very focused thus limited

  • @tylercoombs1
    @tylercoombs1 Год назад +3

    In the beginning i tried to learn C++ but found it overwhelming, i had a hard time wrapping my head around the memory managment and pointers plus testing code was very confusing.
    I moved to Python and had a much better time in the begining, mainly because Python was much easier to understand, i was able to wrap my head around loops, functions and classes and just really understand the fundamentals that one would run into with any computer language,
    I went back to C++ 3 years later and had a much easier time, in fact, I was able to enjoy having more control over the memory stack and etc.
    Side note
    I hate PHP! I essentially had to turn my windows machine into a web server so i could test PHP code, the problem is Windows IIS sucks! (I know there's a dozen better options than IIS but it was an IIS-specific project and it was also a sensitive one.)
    PHP is inherently a security risk anyways so i too would avoid it

    • @YuckFou0x0FFFF
      @YuckFou0x0FFFF 11 месяцев назад +1

      Glad I found this comment and that not everyone agrees. I'm starting on Py 3 now.
      I took HTML and Java in HS years ago and can't remember a damn thing. I think what I'm going to do is just stick with Py until ik it like the back of my hand, then move onto something more complex if needed.

  • @AndreeMarkefors
    @AndreeMarkefors Год назад +2

    I'm just a beginning programmer, or perhaps an intermediate, but I've found Swift and SwiftUI to be a great experience. I don't have much to compare to, but I find Swift to be very readable, and as I understand it, pretty safe to use. I read some Python from Blender plugin development, but can't say I'm in love with reading that. Sometimes "language culture" just carries over, and I can't for the life of me see the benefit that some programmers have for terseness using single letter constants or whatnot. In Swift you often see long constant and function names that make everything so much clearer. Has nothing to do with the language itself, but as I said... once you're in you try to conform to what others are doing and the Swift-way fits me better.
    Due to lack of guru-ness, I shouldn't really comment, but I think Swift is good due to type safety and explicitness as well.
    I'm not buying the "a pen is not a great tool, because every time I try to dig up my garden I have to waste so many hours due to the ineffectiveness of it"-argument.
    You should only evaluate Swift and Kotlin in the context for which they were made. No need to "compare" tools for different purposes.

    • @stevenbrock528
      @stevenbrock528 4 месяца назад

      You definitely should compare as most programmers will not only do mobile programming. So if you're going to need to learn other languages, then it's a matter of which is easier to do first.

  • @Recloh
    @Recloh 4 месяца назад +2

    So hard to install visual studio, please

  • @cerad7304
    @cerad7304 Год назад +6

    I remember helping my kids learn Java for a mandatory High School class. The initial setup was not a problem. The biggest hurdle was that the teachers really did not understand the concepts involved. It was a fine line between generating working code and not overwhelming the teachers with stuff they have never seen before.

    • @xapimaze
      @xapimaze Год назад +1

      Java setup is fairly simple. I don't see *that* as a reason to not choose Java as a first programming language.

  • @silasdavid1999
    @silasdavid1999 5 месяцев назад

    I want to do Harvard CS50 introduction to computer science course but the issue I'm having is that I want to major in Java but Harvard cs50 is focused on C language. Should I go ahead or look for another course?

  • @edisonmecaj769
    @edisonmecaj769 Год назад +1

    In C# you can start with Window Form Application, drag and drop controls and assign events in the code section. There is no need for command line if you're a beginner

  • @StefanoVerugi
    @StefanoVerugi Год назад +4

    Long time user of Excel and spatial data for work I learned SQL and R
    Recently I tried JS and Python for fun
    Each of them have pros and cons, depending on the intended use but all are not too difficult to approach
    And Yes, you must have discipline and commitment to get something out of them

  • @Lazullien
    @Lazullien Год назад +11

    honestly the first one you should learn is probably scratch, it helps with a lot of simple concepts with pseudocode, if you do understand the absolute basics however i think python would be the go to language for beginners, not only is it simple but it even contains so many features which can get most things done, C is also a great introductory language for those with a strong will for learning as it's basically programming as a whole package, containing direct use of memory and all, it's a little harder, but definitely worth learning

  • @bossmusa9075
    @bossmusa9075 8 месяцев назад

    i have build many projects and have 2 y of exp. Can not find a job. What language should i chose?

  • @jasonnares9634
    @jasonnares9634 7 месяцев назад

    I've read the manual and it was awesome. Thanks for sharing. 🙌

  • @dandelion4816
    @dandelion4816 Год назад +44

    Just play the standard and learn C as your first language. Although many would say that low-level languages like C need you to take extra effort in stuff like memory management, I personally feel that this gives you great opportunity to experience the fundamental theories in programming hands-on. For example, I think that learning pointers in C helps a great deal when it comes to understanding why you need immutable classes in OOP.

    • @entx8491
      @entx8491 11 месяцев назад +2

      then why not C++?

    • @vitaliiivanov9514
      @vitaliiivanov9514 10 месяцев назад

      Also, you can safely ignore memory management in c while learning basics of programming as you'll be writing programs that just do some stuff and exit. It's getting important only when you actually want to create something useful.

    • @TheFeralEngineer
      @TheFeralEngineer 10 месяцев назад

      ​@@entx8491c++ is very complicated. You can write c++ like C, but i think you'd get a lot of dirty looks if you did.

    • @haleyhalcyon
      @haleyhalcyon 10 месяцев назад

      Why do you need immutable classes in C++ and what does it have to do with Pointers?

    • @csmoothnj
      @csmoothnj 7 месяцев назад

      Pointers, memory management, and manipulation of registers are essential to any university level course taught in c, let alone all the tech maturity required to set up one’s dev environment. There is entirely enough to drown out a beginner who be a talented developer all because they can’t get VIM or EMacs working well, which is flat out stupid in 2023. We need engineers, it’s time to give up the ghost on anachronistic teaching requirements.

  • @therealg9542
    @therealg9542 Год назад +18

    Python is god tier. My first language was Python, I started coding when I first entered high school. Later on, for my first year of university, I was introduced to a compiler language for the first time, C. Even though we were only learning basics of C, it was still pretty challenging because you had to learn how to pass by reference.
    I'm currently in my first year of software engineering and we are learning Java. The course is great as it introduces OOP concepts and design patterns to help maintain the readability of your code. However, Java enforces you to utilize OOP concepts- you cannot write a program in Java without having 2000 lines of getter and setter methods.
    From my experience, do not code in C languages if you are a BEGINNER, you waste too much time learning the fundamentals. Start with a simple language like Python, then spend a bit of time with Java. This will help build a solid foundation later on for more complex languages like the C languages.
    I also recommend doing leetcode problems even if coding is just one of your many hobbies. I hope this helps!

    • @somusz159
      @somusz159 6 месяцев назад

      Java is ok. C is not bad as a first language if you use it on unix and you won't necessarily waste a lot of time because knowing those concepts helps you become a great programmer. Scheme is a good fit as a first language imo, makes learning theory easier. Python is not god-tier because its reference implementation is slow, buggy and filled with guestionable decisions

    • @therealg9542
      @therealg9542 6 месяцев назад

      ​@@somusz159 Fair point. However, in terms of the learning curve, Python is the simplest and most intuitive programming language.
      In terms of practicality, it depends. In the software department, we use JavaScript for developing web applications. For the backend, Java is the preferred choice - plus you learn about essential SWE practices; refactoring, unit testing, etc..,
      Python is the preferred choice of language for machine learning, and C/C++ is mainly used in the mechatronics, mechanical, and electrical departments.
      Having proficiency in Python, Java, and C++, I confidently state that Python is the most beginner-friendly!

  • @bambirapinbogin
    @bambirapinbogin 9 месяцев назад

    So what if I’ve already started learning python I’m working on learning c and I’m going to college in two days to start learning C++ first semester I don’t have to do this I am knocking out, prerequisites at a community college, and my C++ class is not required

  • @kmunson007
    @kmunson007 Год назад

    Great stuff! Thanks for this video.

  • @pierreabbat6157
    @pierreabbat6157 Год назад +3

    I code in C++ and should be earning a fair bit of money doing so once the project is well enough along to get funding, but I recommend Rust for people who need to write fast code that doesn't pause for garbage collection. (C++ vectors pause for resizing, which can stop things just like a garbage collector.) Instead of Python, which is slow, I recommend Haskell, which has a REPL and a compiler; when compiled to machine code, it's around 1/3 as fast as C. Or you could use Julia, which also has a REPL and a compiler.
    I agree about C#, Swift, and Kotlin. They are mainly one-platform languages; I write cross-platform code. It's possible, I've heard, to run C# on Linux, but I'd rather use a language that's designed cross-platform.

    • @wesleydahar7797
      @wesleydahar7797 Год назад

      Every language "pauses" for dynamic memory allocation, including Rust. The first requirement for anyone who cares about performance is to write performant code, which is not the same as writing optimized code.

  • @Aizistral
    @Aizistral Год назад +6

    - Java
    *- I disagree*
    In fact, the reason I would not recommend JavaScript for beginners is *specifically* because it's a dynamically typed language. While that gives you more freedom, it definitely has a tendency to create hard-to-deal-with errors that would be easily avoided in a statically-typed language. Maybe Java specifically is not for everyone, but I definitely go with a statically-typed option whenever someone asks me what they should learn first.

    • @AndySterkowitz
      @AndySterkowitz  Год назад +2

      :-(

    • @peterlinddk
      @peterlinddk Год назад +2

      I have often heard that argument, that dynamically typed languages should somehow be harder to learn. I have neder seen it though - but I have seen a lot of problems with statically typed languages, where you NEED to understand the types and conversions before you can write anything. And still get errors when your data cannot be parsed into the right format. So I simply don’t believe that the problem exists outside the mind of those who prefer statically typed languages …

    • @52cent
      @52cent Год назад +1

      TypeScript which is strong typed is just a joke

    • @montecrucis7247
      @montecrucis7247 Год назад

      That dynamically typed freedom is what it made easy for me as a self taught starter, and it taught me to be aware of what my code does when and where and why. It forced me to write clean code from the beginning and I learned print f logging along with it. Clean code seems to be a not so often discussed topic among frontend programmers btw.

  • @santjose-lx9js
    @santjose-lx9js Месяц назад

    I have a question, i wanna learn symfony.. and this will be my first course, can i learn it or do i need any base before i jump to it

  • @bobgreene2892
    @bobgreene2892 Год назад

    This video is my introduction to you, and despite my initial skepticism, your summary seems accurate and practical. Thank you-- I subscribed.

  • @miketurner3461
    @miketurner3461 Год назад +9

    I'd say 2-5 years through your journey, it's good to know BOTH javascript and python another domain specific language of your choice (Rust/C++ for systems dev, Kotlin/Swift for mobile, etc.). Most software projects use a combination of languages and you get paid good money for knowing different parts of a stack.

    • @Art-is-craft
      @Art-is-craft 5 месяцев назад

      Swift can be used as a true software engineering language like Java and C++.

  • @FreeThinkingWisdom
    @FreeThinkingWisdom Год назад +3

    I think you hit the nail right on the head with the "they're not pokemon cards" info, but I disagree with the two that you chose. I like JS and Python, even though python doesn't scale well, but learning a lower level language I think is the move. I say this because it's vastly important to understand datatypes, how memory works (pointers), and how data is structured. Because of this I think C is actually the best to learn in because you have to manually handle everything. Is it more difficult, yes, but when you transition, if you transition, you'll have an understanding about programming that people who start at JS or python simply don't have at the same point you'll be at in learning. Is it hard yes, but like the butterfly, the struggle cultivates strength that will pay dividends in the long run. Also don't focus on transitioning. learn one language REALLY well, because they're all similar and at the end of the day it's mostly syntax, but you won't progress to more difficult challenges if you stop at the same point in all new languages.

  • @patricksemmler9919
    @patricksemmler9919 10 месяцев назад +1

    I started in the early 90s with C64's Basic. After purchasing my first own PC in the mid 90s I wrote some small programs with GWBasic and QuickBasic. In 1997 I learned Pascal and a collegue showed me Borland Delphi, and I used Delphi for over 10 years. Coming from procedural Pascal, it took some time until I learned the concepts of OOP, and 2010 I switched to C#, which is still my favorite language. In the 2010s I learned Python to write some Scripts at work, did some little stuff with Java and a little bit PHP. I would recommend to start with a language that has a C-like syntax because most modern languages use this syntax. The language should be also object orientated and type safe.

  • @atlantic_love
    @atlantic_love 8 месяцев назад +1

    A website running JavaScript is NOT a "JavaScript Application". If you make something like a calculator, that is a "utility". A web application entails utilizing read/write access to actual data that would be saved somewhere, and you can't do that with JavaScript.

  • @krisvq
    @krisvq Год назад +8

    I speak "a few" languages :) and have been coding for 25 years now and I think your suggestions are good for the most part. In my opinion PHP is a good way to learn to code because it is not "too easy" and covers a great deal of ground, conceptually. Having some resistance at the start is good for grappling with code. I didn't start with PHP by the way. I am merely suggesting from personal experience with young coders. Mine was indeed C++. If any new coders find this to be helpful I also think Python and JavaScript and yes, PHP are good. They give you 3 distinctly different concepts to master and you will develop a great deal of coding flexibility if you take them on. That being said, if you do take on C++ learning other languages becomes mostly trivial. That is a good thing. Good luck with whatever you choose. Also expect big changes in coding concepts over the next few years. AI will change how we do things.

  • @toddbu-WK7L
    @toddbu-WK7L 11 месяцев назад +28

    I first started coding in 1978, and graduated from college in 1987. I’ve programmed in every language you mentioned plus a whole lot more. I agree with this list 100%. The popularity of C#, Java, and PHP are offset by the fact that the pay rates are generally lower for these languages than Javascript / Node and Python. That’s because the latter languages allow you to work faster and more reliably once you understand them. I am a classically trained computer scientist. I’ve taught at the college level. After 35+ years of software development, I am still current in technology and I love my work. But I have no use for C# or Java or PHP anymore. I still use C++ daily for microcontrollers and recommend it for that specific application. Otherwise, I recommend following the advice in this video

    • @AndySterkowitz
      @AndySterkowitz  9 месяцев назад +3

      Thank you Todd

    • @StaraPuska
      @StaraPuska 9 месяцев назад +2

      "That’s because the latter languages allow you to work faster and more reliably ..:" - without understand the principles. And it leads to a terrible coding without errorhandling, reasonable design and without considering resources...".

    • @toddbu-WK7L
      @toddbu-WK7L 9 месяцев назад +5

      ​@@StaraPuska, since this is our first time (that I can recall) having an exchange with you then I will give you the benefit of the doubt and assume that you didn't mean to change the meaning of my post when you misquoted me above. Regardless, you did. When you quoted me you left off the **"once you understand them"** (emphasis mine) at the end of the statement. I said absolutely nothing about error handling or reasonable design or resource usage. Of the three programming languages that I said that I prefer (Node, Python, and C++), all of them support reasonable to good error handling mechanisms if you use them correctly. I've also seen great designs in all three, as well as thoughtful resource utilization. What you cite are NOT deficiencies in either the programming language or the ecosystem that promotes that language. I see plenty of good examples of coding in examples and libraries across the Web. And I see some awful stuff too, like the guy that put a blocking loop inside of his `loop()` function in his Arduino code. (It could be argued that you should have NO loops period inside that function, blocking or non-blocking.)
      My point here is that when you quote someone in a reply, please be sure to quote them **in context**. In our world today we have far too much division between people groups because somebody misquotes somebody else that that disagree with. I encourage you and anyone else reading this post to take the time to carefully consider what the person posting a comment intends by their statement rather than jumping to a conclusion based on reading just a few words.

    • @StaraPuska
      @StaraPuska 9 месяцев назад +1

      @@toddbu-WK7L Hi Todd! I am sorry. Did not want to offend you. I was working 15 years as a lead software engineer and have some experiences with programmers who do not have basic habits and basic knowledge. Mainly because they start to scripting , not programming. You know that there are programmers of HTML code. Again, sorry. This is just my opinion.

    • @user-sw2nh4ll7h
      @user-sw2nh4ll7h 8 месяцев назад +1

      It's hilarious, practically everything you said is wrong :D

  • @bluebloodgaming9013
    @bluebloodgaming9013 2 месяца назад

    I decided to go with python first a couple weeks ago. Only had an extremely basic knowledge of html and css structure from a high school web-design class (20 years ago). I recently purchased a book on Python that also dives into SQL. Curious why they have them together in one book. Is it common to use both languages together?

  • @cleebe823
    @cleebe823 Год назад

    I thought that the issue with PHP is that it's too easy to get something up and running, meaning that you can bodge something together that works OK at the time, but when it comes to handing it over to someone else to maintain it becomes impossible to parse (which is why more seasoned devs hate it)

  • @MrPatrickbuit
    @MrPatrickbuit Год назад +7

    Biggest advice I can give is to learn math. Do some calculus and linear algebra, because it rewires your brain to think a lot more logically and for me it really helped when first learning how to program

  • @peterlinddk
    @peterlinddk Год назад +9

    I have taught beginners in Java, JavaScript, C#, C++ and a bit of Python and I totally agree! However, I do think that there could be some reasoning behind learning C++ or C# as the first language if you were learning within a game engine like Unreal or Unity. It is still hard, but much, much more motivating than he console (and for some even more than webapps 😉)

    • @AndySterkowitz
      @AndySterkowitz  Год назад +2

      Makes sense! 😊

    • @mosestechtalk
      @mosestechtalk Год назад

      Hello, Mr Peter, please I'm stuck between learning C# and Java, and I'm not entirely new to programming.
      I already have a working knowledge of JavaScript, please which of them will you recommend, thank you.

    • @peterlinddk
      @peterlinddk Год назад

      @@mosestechtalk It doesn't really matter - both languages are fine, and approximately takes the same kind of knowledge to understand. When you have learned one, it is easy to learn the other.
      C# is used more for games (like Unity) and desktop-applications, but both are used a lot in web-applications for backend services, so depending on what kind of applications you want to build, you might prefer C# over Java ...

    • @mosestechtalk
      @mosestechtalk Год назад

      @@peterlinddk Thank you sir

  • @RodmenRodmen
    @RodmenRodmen Год назад

    I started to learn python and I learned how to create Airline web app project using django and I find it easy. Now I wondered if I should study Kotlin for android or should I still use python. My biggest questions is that, 'can python do anything kotlin can do with android?' Please help me

  • @notcrispeeweevile1388
    @notcrispeeweevile1388 Год назад +1

    Personally I learned Lua, Python, and Scratch as my first programming languages. I only "sort-of" learned Scratch as my true first, and very quickly moved to Lua since it allows for a lot more, but I have gotten really used to these interpreted languages and it's honestly been bad, I want to be doing a lot of low-level things, and Lua and Python encourage practices that don't work for low-level (like at all. . .) so I wish I had started with something a little more complex

  • @Gennys
    @Gennys 10 месяцев назад +4

    I think starting with a strictly typed language is probably far better in the long term as a beginner. The learning curve might be slightly steeper in the very very beginning but i think trying to introduce those OOP concepts later on might end up being more confusing.
    Java and C# also have type inference anyway so its really not a bad first language either way.

  • @blakephillips8649
    @blakephillips8649 Год назад +25

    Great video. I came to the same conclusion after sampling many languages. But between JavaScript and Python I would put Python at the top since there's a HIGH potential for a learning developer to get bogged down in all of the frameworks and trying to figure out the "best" way to do something in JavaScript. Python has GREAT documentation and is less of a moving target IMO. All that being said, JavaScript will probably be the winner in the long term with so many things being web-centric.

    • @Ryuuzaki145
      @Ryuuzaki145 Год назад

      I mean, for web development you will eventually be forced to learn javascript one way or another lol.
      For front-end or full stack, I'd definitely recommend javascript first just for the UI/UX. Wouldn't necessarily recommend jumping right on a javascript library or framework though, but rather plain html/css/js.
      If only interested in back-end and don't plan on taking much time on the GUI, then would recommend focusing on python first.
      But still, some javascript will always be handy in web development.

    • @germanher7528
      @germanher7528 Год назад

      I'm starting now and sólo learning so I choose Python as foundation but I learned programming logic years ago with a bit of Basic, FoxBase and spreadsheets. After Python I plan to go to JS and then web dev, GoLand, C# and Pascal, I plan to avoid Java, and C++

  • @nicktobies
    @nicktobies 10 месяцев назад

    Thank you for the manual. Great Job

  • @TheCourtJester.
    @TheCourtJester. 4 месяца назад

    I tried learning java, and i dont get it, it just doesnt work with my brain, its weird, started learning c++ and it seemed logical and easy...dont know why

  • @izzok.5850
    @izzok.5850 Год назад +3

    My first language was C#. It's a bit hard in the beginning but once you learn a a good amount of it..... You have no idea how fast you'll learn other languages like Java, JavaScript, Python, C++ and now I'm even learning C.
    I totally recommend it!

    • @attilaguba856
      @attilaguba856 Год назад

      I love C# ! That's a good choice! 😊

    • @BioStock08
      @BioStock08 Год назад +1

      🙏 Thank you and GOD bless you.

  • @psyience3213
    @psyience3213 Год назад +3

    After a semester doing VB in HS I bought C Primer by Stephen Parata and got through the entire book by myself.
    Pick whatever general purpose language you want. I think there’s tremendous value in first understanding how a computer works. Learning c/c++/asm, is like taking a computer science class a the same time. Often times not being explicitly aware of where exactly variables are get new programmers into trouble. But a language c/c++ will help you ask the right questions and understand the answers when learning other languages, like is the function pass by value or by address? Can you control that? Is their a garbage collector? When does it collect and do you never have to worry about memory (almost always no)? Higher level languages make these things easier but don’t completely alleviate all the burden from the programmer, and if you don’t fully understand what’s going on you will get caught up.

  • @professorgruff1606
    @professorgruff1606 Год назад +2

    I started with Python, now I’m learning Java and C#. C# and Java are my favorite. I’ve fiddled around with C++, haven’t enjoyed it as much.

  • @joelsundberg9998
    @joelsundberg9998 Год назад +1

    I am learing coding right now, and I found this video really helpful, I am learning html and java, but I find it quite hard but I'm going to keep on going to chase my dream!

  • @moiattube
    @moiattube Год назад +4

    After 20y teaching programming, I'm convinced Java is the best (or less bad) to start. Once softened the reading from stdin, my students get the concepts acceptably fast and can switch to other langs quite easily. I've tried ( extensively ) C, Bash, and Python. Most of the code they produce is to be run on the shell.
    I guess other similar langs like C# could do too, and I might try some of them in the future.

    • @unoengborg
      @unoengborg Год назад

      Now that java comes with a repl it is even easier than it was 20 years ago.

    • @rik0904
      @rik0904 Год назад

      I find C# and java good language for beginners, easy to do what you what and there is a lot of help on net.
      But when i was thinking about it, VB is even better. Many people start with it just to make there work in excel easier, this create a thought that 'I write it and it benefit me already'. VB(on excel) can make this first spark to what to do it , and trying to do it better.

    • @acasualviewer5861
      @acasualviewer5861 Год назад +1

      People from the 70s will say BASIC is best (if Dijsktra fans aren't about)
      People from the 80s will say Pascal is best.
      People from early 90s will say C or C++.
      People from the late 90s and 00s will say Java or C#.
      Ivy League people from the 80s-10s will vouch for Lisp or Scheme.
      People graduating these days will eventually tell you Python or JavaScript was best.
      But I like to go back to reading what Dijkstra said in the first place about what a first language should be and why its important to choose carefully (at least why Universities should choose carefully).
      His point was that primarily we want to TEACH GOOD HABITs and we want to teach MODERN programming practices.
      So its true that Pascal was a really good teaching tool. I've used it to teach, and most first year students grasp it quickly and wonder why Java or C were so convoluted in comparison. It also promotes some good programming practices. However, it doesn't do a great job at teaching MODERN programming techniques.
      These days you want a language that can teach you the functional style, the OO style, and ways to solve problems via vectorization, pattern matching and other MODERN programming techniques. You also want it to be as drama free as possible, so your students don't get stuck with the tooling.
      The language that best fits that bill TODAY is Python.
      Java or C++ can do some of that but not in a way that is seamless. And educators need to be mindful of how to get the most concepts in without causing undue distraction.

    • @mosestechtalk
      @mosestechtalk Год назад

      Hello, Mr Moiattube, please I'm stuck between learning C# and Java, and I'm not entirely new to programming.
      I already have a working knowledge of JavaScript, please which of them will you recommend, thank you.

    • @acasualviewer5861
      @acasualviewer5861 Год назад

      @@mosestechtalk not much different. But maybe .Net will be a bit easier to navigate than the Java ecosystem.