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/ - Наука
What programming language did you choose to be your first?
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. 💪
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?
I started with JavaScript
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.
I started out with Apple ][ Basic, then Fortran. So yes that was decades ago 🙂
Nowe I'm on the path of Python
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.
what are books with interactive content?
@@blearbenin
I assume it’s something like “test this out/try this in JavaScript:” or “try programming this:” or something like that
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.
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
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
Same. C++ was my first language and I don't even have to study other languages to use them now. I just get them.
Yeah we used c in college too, was nice coz I went into the degree already knowing a lot about cs.
Same here
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.
Learning C++ as my first programming language
I agree. I ve begann with transistors and build my first ADDers. Everyone should begin with transistor.
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
if you prefer type script look into Dart language and flutter framework
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.
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.
Hi there, thank you for sharing. May I ask you how long did it take you to learn all of this?
I like how they start off the first week with Scratch and then just throw you into the deep end with C LOL
@@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.
@@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.
@@j.l.61 Thank you, I have a loooong long journey ahead of me :))
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.
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.
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.
Assembly, C those are the best to start with.
Assembly would probably be the absolute worst choice for someone completely new to programming@@johnsonogbu8697
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.
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.
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
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.
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!
please could you share topic list or resources that help you learn
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!
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. 🙂
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!
@@georgiosdoumas2446 how did you learn please
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?
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.
Java isn't a high level language?
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#
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.
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
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.
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. :-/
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.
Programming is hard. Just be a taxi driver.
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
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.
There was no teacher and no internet when i started to learn programming.
@@maxmuster7003 what year was that then?
@@AndrewDCDrummond In the stone age of MS DOS on 16 bit PC intel 80286.
@@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.
@@maxmuster7003 also what is the predominant language used in Linux and Unix, and the Windows and Mac (pretty much Unix) kernels?
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.
Do you need PL/SQL in your work or can you just use Python for automation + normal SQL?
@@awesomebearaudiobooks
For procedures I use now T-Sql in Azure. I used to use procedures in Pl/sql in data warehouses.
I very happy my first language was C++
My condolences
@@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'.
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.
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.
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.
@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.
@@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?
@@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.
Pascal? In this day and age?? That's a joke right. You can't genuinely think that that makes for a good beginner language.
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 😜
Guess you cuddle the else.
C and OpenGL? So what is your work? Some 3D rendering software?
Always fear pointers and data structures.. So afraid of C 😂
@@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.
@@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.
I would definitely recommend to start coding in C++ or Java. These only two languages can build your programming concepts at the best level.
I agree. Java is a very good choice. Glad it was my first
@@AZ-gs6hj I agree about Java. But C++ is definitely not for beginners.
I love Java lol
@@KratosVS It's a great language, mate. And it will be around for a long time yet👍
Started with php, got a taste of C withlut typecasting for a quick start lol
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?
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.
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.
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.
@@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.
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.
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 :)
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. 😀
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
I picked regular C. What about C-- (C minus minus) for beginners
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
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
What languages can be developed on an Android tablet?
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.
oooooh an engineer LOL
he's not helping anyone by recommending Python and JavaScript as first languages....
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!
Oh Pascal was my first exposure to programming, and then VBA. When almost nobody mentions these in recent times it makes me feel old.
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.
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.
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?
You said we should not start with Java, Kotlin and swift. Then which language should we start learning for Android Development?
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.
You expressed my thoughts really well. I hope js and python for beginners trend will someday go away.
@@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.
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.
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
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.
@@MrMudbill ないす
yep, that just mean that first language for any one should be, 'the one that give you fast benefit in real life'
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.
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. :)
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.
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.
@@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.
@@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.
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.
You absolutely picked the right two languages to learn.👍
Take a look at julia. I pretty sure you will love it.
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.
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?
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.
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 :(
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.
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?
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.
Thank you Andy for the wonderful pdf!
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.
Absolutely. C++ is a highly valuable language to learn, but it's not ideal as a starting point for beginners.
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.
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.
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.
A classic in the industry to be sure. I lived and breathed that book for my entire university time, and several years thereafter.
Thanks Andy :) These tips help me a lot.
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
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, …
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.
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".
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.
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..
Which is why programmers get paid the big bucks...
C# frustrating? Oh man, gotta find a good teacher on your own then. Like Tim Corey.
@@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...
@@williamforsyth6667 I think you completely misunderstood my reply to Katariina ... I was also wondering how anybody can find C# frustrating.
@@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?
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#.
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.
One should learn C before C++.
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
Which would be easier to learn between java script and python? Thanks.
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.
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.
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
It would be very useful for illustrating math concepts.
SQL is easy cause its use is very focused thus limited
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
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.
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.
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.
So hard to install visual studio, please
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.
Java setup is fairly simple. I don't see *that* as a reason to not choose Java as a first programming language.
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?
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
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
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
are you serious right now bro🤨🤨
If you're 6 years old, yea.
i have build many projects and have 2 y of exp. Can not find a job. What language should i chose?
I've read the manual and it was awesome. Thanks for sharing. 🙌
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.
then why not C++?
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.
@@entx8491c++ is very complicated. You can write c++ like C, but i think you'd get a lot of dirty looks if you did.
Why do you need immutable classes in C++ and what does it have to do with Pointers?
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.
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!
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
@@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!
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
Great stuff! Thanks for this video.
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.
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.
- 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.
:-(
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 …
TypeScript which is strong typed is just a joke
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.
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
This video is my introduction to you, and despite my initial skepticism, your summary seems accurate and practical. Thank you-- I subscribed.
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.
Swift can be used as a true software engineering language like Java and C++.
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.
I agree.
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.
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.
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.
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
Thank you Todd
"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...".
@@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.
@@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.
It's hilarious, practically everything you said is wrong :D
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?
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)
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
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 😉)
Makes sense! 😊
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.
@@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 ...
@@peterlinddk Thank you sir
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
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
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.
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.
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.
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++
Thank you for the manual. Great Job
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
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!
I love C# ! That's a good choice! 😊
🙏 Thank you and GOD bless you.
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.
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.
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!
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.
Now that java comes with a repl it is even easier than it was 20 years ago.
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.
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.
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.
@@mosestechtalk not much different. But maybe .Net will be a bit easier to navigate than the Java ecosystem.