5 must have skills to become a programmer (that you didn't know)

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
oh yeah that's a good stuff hey tech wait here and welcome back to another episode ah that's good at this rate I'm drinking about three cups of instant coffee every day and you may be thinking well that's pretty unhealthy but it's not actually because if you check the ingredients it's just coffee instant coffees so you know I can just drink a bunch of this a better question you may be wondering is at this rate maybe I should just be investing in a normal coffee machine given that I'm drinking so much coffee every day and you might be right but at the same time it just takes a lot more work to be making coffee doesn't it well I thought I would go over for you guys today our five must know skills for software engineers and this may be especially useful for universities students people who are just getting into tech trying to become programmers and people who aren't necessarily aware of other skills that may be required or needed for the field you know we all know the obvious ones right like you need to know how to program you need to learn a language and maybe you need some communication skills do some problem-solving whiteboarding algorithms data structures is that it and it might be actually for you to pass a certain interview or something but over time and it may even help you look better if you were to learn five additional skills and these are skills that in my opinion every single software engineer should know they're not necessarily obvious but over time you realize that every single software engineer took the time to learn these things the first one is regular expressions surprisingly I find that a lot of university students they're not really knowledgeable about regular expressions unlike me I'm like a pro at regular expressions I use them all the time I've built entire databases out of regular expressions when I didn't want to use a standard like sequel database and regular expressions can accomplish so much it's a way to do pattern matching on text the most obvious usage is for searching large code bases for certain pieces texts using tools like grep you know many code editors support this like sublime Visual Studio code regular expressions or rejects is are often used for searching across large code bases doing search and replaces refactoring code they can even be used as code checks to prohibit committing certain strings of text certain styles of coding using regular expressions you can scrape websites parse poor data create entire web applications where you read and data validate the user input store the data in a certain format and then read that format back you can do all of that with regular expressions you don't even need a database every single company I've worked in has depended heavily on regular expressions if you're not familiar with them I recommend you have a gallon board moving on the second skill that most developers should know is sequel a lot of developers offend especially if they're junior they don't really know sequel yet but eventually many developers wait go on to learn sequel what is equally important you know sequel is a database language is for querying database tables creating tables editing them reading them and you might be thinking to yourself well you're not a database engineer what do you need sequel for turns out data metrics are very important for any engineer in order to launch any feature you need to be able to check out the data analyze it logging is very important in order to measure the impact that you have you know you don't just ship a feature you ship the feature and then you need to say well it increased over our application usage time by two percent it dropped some other metric by one percent but I recover that in some other way and sequel is essential for being able to query your data logging metrics dashboards and be able to figure out what data is there these days in most companies in order to launch any feature you need to have the metrics the data to back that up and in order to obtain those metrics you need sequel that's why it's going to be helpful for any engineer to at least be able to write a few standard sequel queries using like group by order by aggregation things like that the third skill that we all need is debugging skill all too often I see engineers if they know how to code but they don't know how to debug and they don't pay much attention to it they just say you know the compilers wrong I don't know they can't figure out where bugs are there's just no problem-solving ability there even though they know some algorithms and debugging is really the art of problem solving being able to quickly identify where in the code a bug may be because for the majority of engineers most of your task is going to involve fixing small bugs you know there's a bug figure out where it is and then fix that bug and many times these bugs can be obscure kind of strange hard to track down the ability to debug is going to be very important here and not only that I would say but if you're working on say mobile apps for example you're going to want to be able to use the debugger gdb step through the program create breakpoints maybe even check out source control check out the versions history of a file and see where it changed at what version and where the issue may have first cropped up oftentimes people see me as a senior engineer asked me to go fix a certain problem that no one else can fix it's not necessarily because I know some algorithm better than some other person is simply because I know how to debug a program more accurately and precisely it's really about analytical and problem-solving skills my fourth tip for you and this is what separates the truly great programmers from the mediocre ones is scripting tooling being able to create tools for yourself and you know I have heard a quote recently that said all of the best programmers are writing their own tools if you're not writing your own tools to speed up your own process your own workflow you're just going to be limited but the tooling that has already provided you know I think what really makes software engineers highly productive the difference between an engineer who is outputting 1x code versus 2x code or 5x or 10x code is the tooling and usually these tools are going to be written in a language like say Python maybe PHP bash you can even use like nodejs JavaScript maybe Ruby on Rails or go Lane some tooling language that can we on the command lane and you know these scripts can be used to help expedite your overall workflow for example for Cobra factors you may be writing a script there's only a one time usage thing and it can analyze a repository of code and override detect unused files may be buggy lines of code I personally write my own script wrappers on top of version control so I'm not necessarily using like say git or mercurial for version control I'm using my own system and I find that that for me helps be that my personal workflow so I would just recommend that you're not ignore the script inside this is going to involve maybe having some familiarity with bash Linux UNIX and a language like say Python or something like that for the fifth final and last tip I could have chosen a lot of things but I think I'm gonna have to go with antisocial skills and and their social skills are very important for a developer you know if you just go to your co-worker James and you say hey James how's it going are you feeling okay buddy do you want to go grab a quick beer can I cheer you up friend how was your weekend all of that is not really providing much value for anybody and James may even decline your invitation to go out because he's a busy guy everyone's trying to be productive on company time and so the standard social skill is not really useful but you need some sort of social skill communication is still very important your antisocial skills is really about communication without being social and this may involve writing emails creating wiki pages posting to groups setting in PowerPoint presentations creating Excel sheets and notes and properly circulating them it was funny that I've worked in some companies where I might send a private message to somebody and that person would explicitly decline to communicate back with me because they would say that this private messaging does not surface the conversation for anybody else to see that type of socialization is actually frowned upon and what people really want is a way to preserve history preserve the knowledge and circulate it with as many people as possible the proper forum for that may be like a wiki or a widespread email message or something like that where many people can see the at the conversation you know this may also involve if you have a one-on-one conversation with somebody well sure yeah that's so sure but after that you want to capture that conversation in an anti-social manner in which you write down the notes of the meeting the conversations and then you circulate that across your team so that everybody knows what was discussed that so for those of you who are not social butterflies I would take some consolation in knowing that I don't think anyone's really asking you to be a social butterfly there's actually a whole other set of socialization communication skills that are needed that are required for software engineers that actually have more to do with being the antisocial but yet communicating effectively if you're looking for more tips for software engineers be sure to also check up daily coding problem comm slash tech lead for daily interview coding problems they'll send you a free coding interview question every day just to help keep your skill sharp and if you sign up as M scribe they'll also send you the solution so check them out daily coding problem comm slash tech lead so they'll do for me let me know if you guys have any tips you'd like to share in the comments below if you liked the video give it a like and subscribe and I'll see you next time bye
Info
Channel: TechLead
Views: 535,636
Rating: 4.848361 out of 5
Keywords: tech, netflix, techlead, google, engineer, amazon, coding, software engineer, facebook, fang, apple, programmer
Id: 3MtrUf81k6c
Channel Id: undefined
Length: 10min 7sec (607 seconds)
Published: Thu Dec 27 2018
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.