字幕列表 影片播放 列印英文字幕 - Hey, welcome back. Now in this episode, I want to cover my top programming languages for 2020. And I think it's important to recognize that you can evaluate a programming languages in a number of different ways. For example, whether it is useful, practical, or whether it can get you a job. And in the past year, the landscape for software engineering has changed so much. In my opinion, I wanted to give an update on what I think are the most relevant languages and technologies that you need to know. Quick pause. This video is sponsored by Brilliant, a problem solving website and app with a hands on approach and over 50 Interactive courses, get 20% off premium at brilliant.org/techlead. All right, so first step, what is my number one programming language? Which language with I personally want to know and learn in 2020? And I know that there are some popular ones, you may be thinking, well, there's Python that seems very useful. Everybody says Python is good. I've said that JavaScript is very good as well before too, but it's not what I would want to know. I think they're great languages very useful, but personally for me, I would go with the Swift iOS mobile development and you may be wondering why. And the reason really is competition. In my opinion when you're learning a language like Swift or Objective C for iOS mobile development, the barrier to entry for this is actually quite high. For example, number one, you need a MacBook, you may need a membership to the Apple developer program that's like $100 per year. And so this creates a barrier to entry that actually helps make it such that when you go and apply to jobs, you're not competing against the billions of people out there all the outsourced workers, all the other students who may be flooding into the US from say foreign markets. There's so many talented people out there in the world. To me, it's an uphill battle. And it's just the market dynamics at work. iOS, mobile development, if you can get in, it's really quite pleasant, actually, you get great hardware, great technologies. Usually the iOS code is cleaner than the Android counterparts, at least as far as I've seen, and it positions you were to land the role at top tier tech company like say Facebook, Google, Apple. Because a lot of these companies, they want the mobile native developers to be churning out really high quality performance code. They don't really want like React native type of hybrid code. And in my opinion, mobile native development is still pretty decent area to be in, although the heyday has come and gone. App development these days is more difficult than it was before and there's a lot more things you have to take into consideration. Like you have to make sure your code works for iPad, iPhone, dark mode, light mode, accessibility, all sorts of different screen sizes, dynamic text sizes, internationalization, UI human interface design patterns. So developing mobile apps may have a steeper learning curve, you could be doing your own memory management, doing distributed processing across multiple threads, handling UI and scale performance issues layouts, but still I just personally prefer the smaller playground as the iOS developer community. So overall, iOS development comes in at number one for me not because it is the most practical language but because it is a language with the largest moat around it because you have to essentially shell out $2000 for a MacBook Pro, pick up the Apple developer program and that just locks out a lot of other people and competition when you're applying to jobs. Now, coming up at number two, I would put Kotlin, or Java, Android development as the next technology to know. And I say this because when I was working over at Google, and then later at Facebook, I kept hearing people say that there is a shortage of Android developers. So Android development, it's in demand at these FAANG companies, not to mention the languages used like Java, Kotlin. I mean, they're pretty decent, Kotlin is actually quite nice, as well as a very modern language. And Android has only been gaining market share against iOS. Not to mention most internet browsing activity these days has shifted from desktop over onto mobile. So native mobile app development. While it may not be that important for say a startup, which maybe just needs a web presence, for these large top tier tech companies, it is the primary battle ground because they absolutely need to win on these platforms and it is very important, they're making their apps as fast as possible. And for example, if you're working on say, the Facebook app or the YouTube app, these mobile versions and the developers behind they are just given higher priority, they're given the spotlight, compared to say, the web counterparts who are working on site, the JavaScript versions, which usually, you know, people are trying to push people off of their web versions onto the mobile versions of these apps. All right, so moving on, language number three. Well, if you're to ask me, what is the most practical language to know? The one that you didn't have to worry about trying to apply for a job, but if you just want to know it, and then become an entrepreneur through that, I would say JavaScript is the way to go. Because you can just get so much done with it. These days, you can build the complete back end using JavaScript, you can use Node JS on the back end, you can build the beautiful front end and website using JavaScript, connect to a whole bunch of different API's connect to a database. And so if you're a small time developer, you want to build the prototype a proof of concept, then JavaScript can get you going, you build a simple website, you don't necessarily need a full mobile native application unless it's something specific you're trying to do. But you can actually get a whole bunch done using, say just JavaScript in building a website. Now there are some problems with JavaScript, number one it's pretty easy, there's no barrier to entry, pretty much everybody and their grandmother knows JavaScript these days. And then the other thing is you have framework hell in which you could be going through React at JS Angular, View, so there could be a host Leo frameworks, not to mention these days, people are trying to write in TypeScript, which provides static typing on top of normal standard JavaScript. So there's no single one correct way to write JavaScript. there could be more churn because you could be learning different things, different ways of writing, you could become very good as a Angular and then your next step you need to write in React, or TypeScript or no-js and so forth. You could even do some native app development using React Native writing in JavaScript. Although these days I think that due to higher demands for say performance and quality people have been going for more purely native approaches instead of building on top of another framework like that. Okay, moving on. Well, recently I was asked by a school professor which language he should teach the students, he had been teaching in Java. And he was saying that it felt a little bit outdated. What language should be universally taught to just everybody? And in my opinion, that would be Python. Because Python is just something that everybody can use. It's a very general and useful language. It can be used for web backend development. You got YouTube and Instagram being powered on Python back ends. It could be used for scripting, like if you want to wrap on your internal scripts and tools, Cron back end jobs, it could be used for data analytics, making SQL queries, building up data pipelines, data engineering, it could be used for machine learning as well. As well as virtually every single API endpoint out there, allows you to interact with it through a Python library. So it's a great language, very simple to learn and read. And this is the language that we also use for our course, by the way techinterviewpro.com and which we teach you how to pass the coding interview. So check that out if you're interested. Now for my fifth language, and this is where things get a little bit interesting for 2020 opinion because my pic is not really so much language but the technology of server less platforms out there. For example, if you want to build a real time back end for your chat application, well, sure, you can go learn no-js or Golang, but instead, you could also just use Firebase. And so back end services like this, essentially, replace your entire need to go learn a new language like no-js, and figure out how to scale that whole thing out, make it secure, and everything. If you want to build a beautiful landing page, you can use like say Squarespace. If you need email marketing, there are services for that, if you need video uploads, image uploads, chat services, payment services, well back in the day, you may use Stripe to do credit card processing, wire up their API using say Python connected to some back end and to have that fill out some email form. But these days, you can get all of that all set up. You could use API services, like say, Zapier that essentially glue multiple pieces together such that many times you don't necessarily need to even be coding a lot of this stuff. So platforms and services have matured to a point that if you're smart, you're able to utilize these services out there instead of rebuilding things from scratch over and over. And that can actually save you from having to learn additional languages if you can just use these other services. And then another new thing I would say for this year, maybe number six is the language of social media in which you know how to promote your apps or products or services using Twitter, YouTube, Instagram, LinkedIn, Facebook, TikTok or Snapchat. I think that 2020 will be the year of these social media platforms, essentially just dominating a lot of internet traffic. And if you're a developer, and you're out to promote your app or platform, then you need to know how to navigate these social media platforms, and this is an essential skill. And I may have mentioned this before, but back in the old days, if you had a website, oftentimes people would just build an iOS app. And it would just be a shell, a wrapper on your website. And the whole goal of that was to get your website into the app store as an app such that you get more traffic for your website that people would visit there. Maybe they put a little app bookmark on their homepage, and you would have to call up the shelf for that. So the whole goal of learning iOS development was simply distribution power. These days, if you want the distribution power, the language to know is that of social media. And then after that, I would say my next language to know would be SQL, the database coding language, because these days, there's just so much data that, there's a high need for data engineers, data analysts, people are able to query these databases, get the metrics and make sense of them. Back at my job at Facebook, probably 25% of my time, I was just writing SQL queries, building these dashboards and metrics such that people could check the performance of their features, make sure that launches would be going accordingly, running A/B tests and measuring impact such that we could justify bringing a feature forward. This is all done through the SQL query language. Now this video is getting a little bit long. I can't mention every language out there but I wanted to mention a few. When they say CSharp.net using Unity development for example, I think that Unity with C sharp has become this great way to do cross platform game development. If you're interested in game development, I think that would be a pretty interesting technology to look into. Similarly, we have flood are using the Dart programming language to do mobile app development across iOS, Android, and perhaps other platforms as well. Flutter is something to definitely keep an eye out for, it seems a little bit early though and at least for native app development, performance, fast startup time preserving the same look and feel I think that those are things Flatter will have to now if they want widespread adoption. Then you've got Go language is also quite nice language. My original interest in this was for real time applications like say chat, but then I realized there's like Google Firebase, you got Amazon ElastiCache. So services like this aren't fully managed, they scale out automatically. If you're looking for something more custom, though, then perhaps Golang can be the thing for you. And then there are some lower level languages like say C, C++, REST. If you're building something that needs that level of performance that may be for you. It's not something I typically work with though on a day to day basis. C++, for example, though, it could be used for say a cross platform development across iOS and Android devices. Now, before I wrap up, I want to note that the best way to think about this, is to think about a set of languages that you want to know, not just one, maybe, let's say three to five, because if you go into interview setting, for example, and you just say, you know, one language like say, Python, or you only know Java, it doesn't really matter how good you are at these, you're not gonna get the job offer. It's pretty useless, actually, these days, if the only thing you know, it's just one language, you just can't get that much done with it. So rather, I find it helps to have a more curious learning based mindset where you're out there, just explore whatever technologies may be useful for you. And it's not really just the languages, it's really all the frameworks, the ecosystems, the tools, the platforms and services that surround that language, that make it really more useful. So ready to learn more? Brilliant's courses have storytelling, code writing, interactive challenges and problems to solve. It's built for ambitious and curious people who wants to excel at problem solving and understand the world. You'll come way better at problem solving. With brilliant you unravel concepts bit by bit and build up to an interesting conclusion and discover deep truths in unexpected places. It's such a fun way to nurture curiosity, build confidence and develop problem solving skills crucial to school, job interviews, or career. In Brilliant stock provoking content breaks up complexities into bite sized, understandable chunks that will lead you from curiosity to mastery. So go to brilliant.org/techlead and grab a subscription to help a loved one spark a lifelong love of learning. And as for 2020, I would say that a lot of these platforms and services, they're being built out now, fully managed auto scaling cloud services, that can save you some time from having to learn another language. And you can instead just interface with this through some API, and use whatever other language, that you may be currently on. The simpler you can keep your tech stack the better. So that'll do for me. If you liked the video, give a like and subscribe. Really appreciate that and I'll see you next time. Thanks, bye.
B1 中級 2020年最熱門的編程語言(軟件工程師用) (Top Programming Languages in 2020 (for software engineers)) 6 0 林宜悉 發佈於 2021 年 01 月 14 日 更多分享 分享 收藏 回報 影片單字