Radio Inspire

How To Learn Sign Language

Which programming language should you learn first?

Hey, so I’m back with the fourth Ask Preethi series today and today’s question is a very, again, a very common one. This person is asking what language should I start with? Should I start with–and also should I start with the front-end, back-end, machine learning, data science? I have no idea what language or where to start. Of course this is an overwhelming thing to decide when you’re getting started with programming particularly because there’s so much to learn in computer science and programming in general that it’s really hard for a beginner to know where to start. And I remember when I was getting started I kind of googled this question, and the worst part about googling is that everyone has their own answers. And they have their own opinions. And so they all seem right because they have experience, and something worked for some people, something didn’t work for other people, so It’s a very good question. I struggled with it, too. And of course, as for everything in software engineering, I’m gonna say that it depends. Some of you might be starting off in programming in a very specific vertical. For example, if you know you want to do machine learning or you know you want to do data science or you know you want to do mobile development, iOS or Android, or you know you want to do security stuff for distributed systems. If you know the vertical already Then there’s usually a few specific languages that those particular verticals generalize on. For example, with machine learning and data science, a lot of people use Python And there’s a lot of machine learning and data science libraries and math-related libraries written in Python, and so most of the data scientists I know write in Python. So I would say if you’re going specifically for that vertical, pick the language that that vertical is standardizing on, right? And, like, why would you go learn Haskell if you’re trying to do machine learning? It doesn’t make sense. But let’s assume that for this question you are just kind of starting out new. You haven’t really decided where you want to focus. You’re starting from a clean slate, and you really have a choice of anything that you can do. And that’s the question I’ll answer today, so I’m gonna be biased and say the best thing we should start with is JavaScript. And just to give you a personal background–so I started with learning to code my first language, which was actually not JavaScript. I started to learn Python and I learned I was trying to learn it through a book called “Learn Python the Hard Way” and I tried many, many, times and I failed. I tried–I remember the first time I stopped it after two weeks, the second time I stopped doing it after five weeks. I tried a bunch of online courses. Maybe I thought the video format would help. Something about it was just not clicking to the point where I was getting really frustrated. I was like, you know what, maybe programming is not for me. Like it just wasn’t working. And then I remember I was kind of expressing the struggle with my ex-boyfriend at the time, and he was like, “Why are you learning Python? Go learn JavaScript.” I was like, “What’s JavaScript?” And I came home that night, and I did a bunch of Google searching, and I found this Codecademy course. It’s like a 10-hour course or something on JavaScript And I remember I didn’t even go to work the next day I just sat there and went through the whole JavaScript intro course and after that I was hooked. It was like I was unstoppable. I fell in love with JavaScript. There was something amazing about writing some JavaScript, and then along with it, some HTML and CSS and then seeing– refreshing the browser and seeing the changes–that just made my heart beat so fast. I couldn’t–I couldn’t stop myself from loving it. After that, I was just unstoppable. I was hooked on JavaScript, and really, Javascript was like my gateway drug to programming, if you can think of it that way. And I think the reason why JavaScript is so beginner-friendly is because a few things. One is it has that immediate feedback loop that I was talking about. So you can write something in your IDE and then you can refresh your browser and see it right away. Whereas some other languages, like Java or Haskell, they require a compile step where you actually need to compile the code before you can actually see what happens. Which adds a little bit of burden for a beginner and kind of makes it a little bit more confusing. Two, there’s no complex developer environments. You just set up. For example, if you’re coding for iOS or Android, there’s a whole process for setting up Xcode or the Android Studio thing and That in itself is kind of daunting. Whereas with JavaScript, you can just download any IDE, or basically Notepad, and code in that and be fine with it. And you don’t need all these complex toolings to get started. Three, as I said before, you don’t need to compile and figure that whole thing out. Another big reason is because there’s no types. JavaScript is is a dynamically typed language. And that means you don’t have to write types, like whether a variable is a number or string or whatever, and that removes a huge burden on beginners, I think. When I was looking at some other code, like Java code, for example, when I was getting started, it was pretty daunting to see both the code and the types. I didn’t know what the difference was between them. Whereas JavaScript, you just kind of write code and you don’t worry about the types. And that removes one extra thing to learn. Honestly, sometimes it makes it visually easy on the eyes for beginners. I would argue that as you get more advanced I actually like types now because it makes me–it makes it easier for me to read code. But when I was a beginner that wasn’t the case. I think types added an extra burden when I was a beginner. So JavaScript has no types, which I think is amazing for beginners only. And then the other reason is because it runs everywhere. So if you write JavaScript, it runs in every browser: Chrome, Firefox. Whatever it is, it runs on every operating system, every device, so you can–a beginner can get started with JavaScript and write for various kinds of platforms, and that’s pretty cool. And lastly, I think it’s very versatile, too. So JavaScript you can use it as a scripting language. You can use it to build complex web applications. You can use it with nodes, you can book sophisticated API backends. You can even build bots and IoT applications. You can write native desktop applications using Electron, you can write native mobile applications using React Native. All in JavaScript. You can even do VR stuff now with React VR. It’s just, it’s pretty amazing that you can take JavaScript and just like do so much with it. Whereas some other languages are not as easy to do that and are not as transportable in that sense. So if you’re struggling to get started, and you haven’t tried JavaScript yet, I say go for JavaScript and see if you like it. To me, again, JavaScript was the gateway drug into programming. It’s really how I learned to code, and it’s really where I learned the fundamentals of programming, and this is things like loops, conditionals, functions, data types, variables, classes, inheritance, prototypes. Like, all these things are fundamental to almost every programming language And I kind of learned the fundamentals of those–of a programming language–through JavaScript. JavaScript was kind of just the tool to get me there. And now that I know JavaScript, I can pretty much apply that and read and understand code in almost any language. So I can read Python code. I can read Go. I can read Ruby. I can read C++. I can read Haskell. Like, I’m not able to maybe write in it as like a super expert programmer. But I can read and understand it pretty well because the syntax–you start to get familiar with the same types of syntax, loops, the conditionals, the functions and so forth. And I guess, like, the takeaway is the language you just–in the end, just pick the language that makes you want to code. That makes you want to like really get into programming, and the one that you specifically like the most. It doesn’t matter what other people tell you, because what other people tell you–people recommended Python to me, like outside, outside when I got started. The reason for Python is that, because other people recommended it to me, and it didn’t work for me. So I had to explore other things to find the ones that work for me, and to find the one that made me fall in love with programming. And then you can always expand from there. It’s not like, just because you started with JavaScript you have to stick with fun and you have to stick with JavaScript. Or it’s not just because you started with Python, you have to stick with Python. And you’re limited to what only Python offers. Like, why don’t you learn one language that is applicable to any language? And you can kind of learn new languages much more quickly. Like, I was able to learn Python so much quicker than JavaScript, after I learned JavaScript. Just because it’s very similar. And same with wanting to learn Python. Running, learning Ruby was such a such a breeze. Yeah, it takes a little bit longer to understand the specific details of how the syntax works. But once you get past that syntax riddle, most languages are kind of the same. And I would say once you actually learn the language, don’t get stuck in it, either. Be broad. So, well, that’s one of the things I did when I was kind of more of a beginner. I was like, even though I learned JavaScript I was keeping my eyes open for all different things. I learned Node. I learned–I even start to learn other languages like Python, Ruby. I started to learn more back-end stuff. I started to learn, like, things to do with Docker and more like system level stuff. I kind of just kept myself broad because I want to really be all across the stack and understand what I like best, what types of problems I like to solve the most. What communities, what programming communities I like the most, where can I be the most productive. And so I kept learning new languages, frameworks, technologies, and through that exploration, I was able to figure out what I really want to do right now, which is focus on blockchain engineering only for the foreseeable future. But I wouldn’t have been able to go in there if I didn’t explore all these other things and figure it out. Like, taste–got a taste of a bunch of the other ones, and really figured out what really clicked with me. So, if there’s a key takeaway, the core goal of when you’re picking a language or picking where to start is just find the language that gets you in the door. And then learn all the core fundamentals of that language. So, learn the core fundamentals of a language and learn computer science through that language. And then, once you have that core base foundation, you can kind of translate it to any language, any platform, or literally any industry in the future. So just find that gateway drug and then you’ll be addicted forever. Just like gateway drugs make you addicted to drugs, the gateway programming language makes you addicted to programming. So that’s the end of this one. I’ll create the next one in about a month or so, and I’ll see you then.

77 Replies to “Which programming language should you learn first?”

  • This question is imposed by people who try to learn web development, not programming in general.
    Web development is mess right now, worst time for learners.

  • JavaScript should be taught in schools. It's not perfect, don't get me wrong. There is a reason that one of the best selling books in JavaScript is called "JavaScript: The Good Parts", because there are certainly parts that aren't so good. Nevertheless, it's such an easy language to jump into, and the ecosystem is so huge, it's well worth learning.

  • I think a more strongly typed language like C# or Java is better for beginners, because it's more consistent and more apparent how things are being interpreted and how they work.
    If you take javascript it's all kind of under the carpet, you think you understand, but as soon as you run into some unexpected behaviors, all that stuff that is under the carpet now you suddenly need to understand to figure out what's happening.

  • Hi Preethi, Would you take the following question for your next video to discuss.
    Which are the best websites for learning coding. Please cover both free and paid websites.

  • As a Non computer engineer, switching to the world of Machine Learning and the prospective jobs, would certification courses like Courcera and UDACITY really be beneficial and would the employers consider such courses in my case?

  • You make some good points. It really depends on the person.

    Personally, I'd start with C# or Java because the development tools give you autocomplete and real time syntax-error highlighting. and debugging is pretty easy.

    Once you get the fundamentals, the best way is to crack open some existing code and try to modify it – you'll pick up the language way faster that way.

  • Don't know if you read these comments, Ms. Kasireddy, but thank you very much for your insight. I am just starting out in programming, and one thing I notice is that classes don't really offer direction. This has been a big help. Thank you again.

  • I want to hack Kremlin and steal a dozen of Russia tanks an bring them to my farm and use them for ranch defense :D. What language should I learn to do that ?

  • Thanks a lot for this testimony.
    I love python but your argument are pretty good ! I totally understand what you encountered. If I was not already «in love» with programming before starting to learn python I would have probably give up. It took me a while to get further than doing useless loop and calculation which only works on console/IDLE. Actually, starting with Flask or Django libraries for python are probably good ways to avoid this feeling of doing so much useless things before getting into real things.

  • Only for understanding: If you are a web developer you are not a computer scientist. Web Development and programming overrall is a very small niche in the CS topic!

  • C is the best language to start, If you're really interested in computer science and you want to get a high programming level, you must star with C and learn basic, complex data structures and algorithms analysis and then you can learn easily whatever language you want.

    Also you should be good at math, only if you want a high level, if you only want to do web pages, you don't really need to be good at math.

  • This is an important topic to me. It's funny that you were learning Python then moved to Javascript. In my quest to "figure out" what language to learn first, I was battling between Python and Javascript also. I decided on Python because of how easy it is. I mean it really is simple, and that's the big selling point, along with all the different uses it has, with machine learning, data science, web development, etc. Javascript I feel is more used in web development primarily, and no doubt, Javascript is used the most.

    To be honest, (I guess it's easy to be honest when your on the internet) it was kind of hard to concentrate on what you're actually saying. Why? Becuase ما شاء الله . of how pretty you are. It's just the reality. Guys just look at something they're attracted to, they don't really listen. I had to scroll the youtube video down off the screen so I could actually concentrate on what you're actually saying! I'm not trying to be offensive at all. Haha, maybe consider wearing the Muslim Hijab where you are protecting that beauty from gazing eyes.

  • Well balanced opinion, there are pros and cons to everything, this is a very pragmatic view that admits the negatives and puts them in context.

  • I would definitely start with HTML and some css if you like. It’s good to help you just understand how code really works. Not loads, just enough to get you knowing the basics of code. Then move on the the rest, like JavaScript

  • When you spoke about becoming hooked on Javascript I could almost feel your joy. That's cool. I hope I feel the same way ….off I go 🙂

  • Good video. Coming from ops side of tech, setting up IDE's is a breeze, so I actually found kotlin to be my gateway drug after bouncing around a bit. I was put off of javascript and nodejs because there appears to be far too much fragmentation. I spent WAY too much time trying to decide which framework to end up learning while getting the fundamentals down. I learned the basics of python and golang, but it was only after I started to work with android studio that I realized this was the way forward which could keep me entertained. I have far too many ideas that need to be realized, and mobile app development is a chunk of seeing that through. I'll learn by necessity as I go, and kotlin is my starting point.

  • She’s kind of biased too:A lot of those things she described about JavaScript apply to pythonIncredibly versatileEasy for beginnersNo complex developer environment Don’t need to compileDynamically typed. And if wanting to work with blockchain, python knowledge would be very handy; but seems like she already knows.
    But agree with her on choosing what works for you.

  • Your key points:

    – easy feedback loop; immediacy of results
    – easy setup; no need for complex IDE
    – dynamically typed
    – ubiquitous; program on any platform
    – versatile

    However, JS has downsides, too:

    – it's a very sloppy language; it has numerous WATs and WTFs that can distract beginners
    – it's an inferior way to learn about object-oriented programming, which is the most important paradigm in the industry
    – beyond the language basics (like conditionals, loops, functions, etc.), JS is a rather large, complex language; ES8.0 has a language spec of over 885 pages!!!

    This is what's in store for beginners as they advance in their education.

    It's hard to dispute the easy feedback loop, but all the other points are hardly unique to JS. Python is built into macOS and Linux. Installing Python under Windows is no big deal.

    Ruby is also very easy to install. Both languages are dynamically typed and extremely versatile. I don't think it's an automatic win for JS.

  • thank you so much but do you think somebody can learn through tutorials and become good in python or java script?
    can you please do the video in your journey in programming when you started learning java script : please talk about your schedule jobs and your schedule learning and how did you prepare yourseft, your plan and something else you did in the beginning because it's very important for the generation programmer like me
    thank you and i look forward to hearing from you

  • Probably the best explanation video thus far….other videos ramble on irrelevant material or promote ads…this is very helpful

  • Hi, I just started learning code. So I can really go straight studying Javascript without studying html and css?

  • Is blockchain programming a good idea to pursue as a career? A lot of questions have been raised about the viability of the technology. Would like your take on this.

  • I am very new in programing, just started last week learning Python and so far I like it, also I started to learn HTML this week at FreeCodeCamp and I also like it very much specially the flexibility of leaning it anywhere using my android phone or mac. I don't know if I will continue learning both languages at the same time or if programing is for me but I will give it a try. Thank you for posting this video, it was very helpful.

  • Nice I am in the same journey started with Python and now I understanding with JavaScript. Thank you for your insights.

  • im glad I started with javaScript using khan academy. if I wasn't for that I would have not got into programming.

  • Smart and beautiful winning combo. I am just starting this and not sure where to start. The more I try to step away from Python the more I see I need to start there? Any feedback? Java first?

  • I have found JS boring. I started with C. To understand how computers work u have to know C and it makes u a better programmer.

  • Hi, I recommend also to touch TypeScript, as they are orders of magnitude higher now in the "type abstractions", they in fact only develop or rather "discover" type system used or wildly abused by JS programmes and are searching for viable patterns to formalize into syntax, while still sticking to promise to follow future ECMAscript, (so pure javascript) future… this sound great. Type system of TS is currently capable to express things that are just impossible to do in latest C#8 for example. It sounds weird, but while JS is quite dangerous without types, using VSCODE editor its even possible to code in pure JS having simply "//ts-check" help of typescript compiler to "guard you" and the VSCODE simply "guides you" even through syntax and semantics by quite nice error messages and hints what could be better written…. I was SHOCKED last few days, while investigating its status after few years… I am still considering GO, PYTHON3 and C#8/NETCORE3, but it will be something around those things (Go leads you better to use paralelization, but isnt saint, its … different, doesnt like inheritance, objects too much and generics, but that must not be bad at all, as its native and FAST; python for datascience, yes, also very nice on devices, micropython/circuitpython and C# is general purpose uperset of Java, far better expresivity, even LINQ, but be carefull to target new things on portable NETCORE3 runtime…). And sure, using TypeScript, there is clean path to write multiplatform desktop/windowing apps using Electron chromium/node portable playground, of course, commandline tools possibel too. NODEJS may soon have some follower based on TS glued far more into core, so we will see…

  • Why JavaScript? It fucking sucks! Python sucks, CSS and HTML suck, frameworks blow, C++ sucks. Use older languages or C-like languages e.g. D, C, (duh), FORTRAN, Pascal, COBOL.

Leave a Reply

Your email address will not be published. Required fields are marked *