How I setup a new laptop for software development

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
having to use multiple development stacks cloud providers or operating systems is normal and quite common if you work on a lot of diverse projects but switching from node.js to python azure to aws windows to mac puts a cognitive load on your brain preventing you from putting 100 of your effort into solving the problem at hand it's easy to develop muscle memory for a few simple things like control versus command in windows and mac but with many variations of languages and frameworks operating systems and things like that the key to being productive as a software engineer is to set up your development environment across all your devices to be as similar as possible that takes away the cognitive load of switching context off your mind and lets you instead focus on solving the actual problem i've just gotten an m1 macbook pro so i thought it'd be a great time to show you how i set up my laptop from scratch to make sure my development environment stays as consistent across platforms as possible even though this example is for my mac my setup in windows is almost identical i'll try to make note of any differences between the operating systems as i go [Music] [Applause] hi guys my name is utsav and i'm a software engineer based in seattle washington and this channel is all about helping you excel in your software engineering careers so if you're into that please consider subscribing as usual all the reference materials from this video will be in the description below and i have time stamps so feel free to jump to the sections that interest you more let's get started but before i get to installing all the development goodness there are a few settings i change some apps i install and on install to make the system more consistent across my environments i almost exclusively use my keyboard so i like to remove all the things that are designed to be used with a mouse or trackpad and take up unnecessary space so the first thing i change is the dock i never really use the dock so i remove all the icons from it and set it to the smallest size possible and auto hide it i used to hide it at the bottom of the screen but sometimes if you have to do some horizontal scrolling it gets in the way so i just like to put it on the left here and never use it so now it's out of sight and out of mind and you get some extra useful real estate and this is even more useful if you're on a smaller mac like a 13-inch the next step is finder it's also full of crap that no one needs so i'll clean it up a bit and make sure that it only has things that i use i also enable some extra status bars and information that i find useful this step is basically to make explorer and finders similar with the same information and quick links between windows and mac okay once i'm done with the finder i just disable spotlight it's a bit slow and doesn't really find relevant stuff very well it supports apple's idea of what the user wants to find versus what my idea is that i want to find so i feel like it doesn't really work well for me i'll replace it with something else later in this video all right now the system is decluttered we can move on to installing a package manager for the system and my choice here is brew or homebrew this makes it really easy to install packages from the command line instead of having to go to websites and click and download the various packages and things like that for windows you can either use powershell or chocolaty to achieve similar results once the package manager is installed i installed a few apps that make my life easier first before i move on to the dev stuff i'm not a fan of safari so the first app i'll install is a browser my browser of choice is edge but you can use whatever you fancy all of those should be available as formulas in brew so the next thing to do is to replace the default terminal with item 2. i think the main reason i installed this is because i've been using it for the longest time so i'm just used to it but it's very customizable and one cool thing with i2m2 is that it allows you to click links so a lot of time if you worked on coding you have build errors and documentations and stuff that appear in the console logs and things like that and it's really annoying to have to copy that and paste it in the browser but with item you can just click them and it's all good on windows i use con mu which is short for console emulator as my terminal of choice and i think windows power tools version is also quite well as some viewers have pointed out to me but i'm just used to console emulator [Music] the next app i install is alfred this is like spotlight that we disabled earlier but it's way faster and much more relevant and it's also more customizable you can hook it up with search engines and things like that create custom events or create commands for any frequently used shortcuts and things like that so it's really powerful and once i've installed alfred i'm going to link it up with the default command space shortcut so that instead of spotlight which we disabled earlier we pop up alfred instead all right last one here is spotify obviously uh i listen to a lot of music and i don't think i'm ever coding or doing anything without some music in the background so i just installed spotify all right let's move on to the engineering stuff now so i installed a few different things because i tend to work with a lot of different types of stacks or frameworks if you may um i tend to work with node and dot net very frequently so i'm going to install things around those toolings or those frameworks so the first thing regardless of what stack you use is git so you'll likely use it so i'll install that as the very first thing okay once kit is installed i install node version manager this lets me easily manage different versions of node um doing that from their website is pretty much a big headache and then if you've worked on node projects different node projects will require different versions sometimes there's like breaking dependencies and and if you don't manage that well it's it's it causes a lot of issues so this helps solve the problem think of it like almost like a virtual environment for python so it just manages versions inside its own sandbox and it's easy to use speaking of python the next thing i install is python and virtual environment so basically they're the same as node and nvm the next thing i install is dot net core i use a lot of things on.net and net core has come a long way cross-platform so it's easy to work with so that's what i installed and finally i installed azure sdk and cli i use a lot of cloud services and most of the time i'm using azure so these make my life a lot easier now that everything is configured the last thing to do is install and configure vs code on windows i'll also install visual studio i also have a full video on how i set up my vs codes i'm not gonna go through all the extensions here but i will quickly run through that so i've got a list of extensions i use um and if you have sync enabled it's super easy to get them synced up so as you can see visual studio code is installed all i have to do is really go in and log in and you will start seeing all the extensions pop up and you really don't have to do anything um if you don't like logging in or sharing your profile across the cloud then you can set up a simple text file with all your extension names their official names and use a simple script that you run after you install vs code that simply goes and installs the extensions for you so you can do that as well like i said in the beginning of the video the idea is to have your setup across stacks and operating systems as similar as possible to take the cognitive load of context switching off your mind right and one of the main things that acts as a barrier when switching frequently is apis conventions syntaxes and different kinds of things and one extension out of this list that has helped me the most in avoiding that is tab 9 who've also kindly sponsored this video tab 9 is the world's leading ai code completion tool trusted by over a million developers worldwide tab 9 supports nearly all modern languages and also understands what language the developer is working on so if you switch stacks frequently like me something like tab 9 will help you stay more productive tab 9 helps you code faster reduce mistakes and discover best coding practices using machine learning models that use over 380 million parameters constantly learning from public code repositories to suggest the right code completion for you at the right time it's based on openai's gpt-2 model and since the model is textual it can also complete and understand natural language like to do comments as well and the best part it's free to get started and you can always upgrade to the pro plan which is gpu powered for advanced completion models as well as personalized completion models that you can train on specific code of your choosing you also have the option to choose to run the completion models locally on your machine or use cloud completions where your code is encrypted on its way out and then immediately delete it so if you want to try tab 9 the first 100 users to use the promo code utsaf pro will get 50 off their tab 9 pro subscription link will be in the description below okay so the last thing to do is make sure everything is syncing all your profiles in vs code icloud onedrive whatever tools you use setting that up properly make sure development is much more hassle free but since that's very individual to the tools you use i'm going to skip showing that in this video and finally since most of this is using an app installer you can easily automate this whole setup using dot files or some of your own custom scripts and push it up to your own repo in github and always keep that script up to date that way all you have to do when setting up a new system is just pull that script and run that one script and it will set up your entire system i used to have one made for chocolaty on windows when i used to try a lot of early release version of windows that crashed a lot and forced me to reset up my machine frequently but these days everything is so stable and i really don't have to set up my machines frequently enough to warrant the extra effort of creating something like that but just wanted to share in case you guys wanted to do it well that's all for this video let me know in the comments below how you set up your machine for development and if you have any tips and tricks that can improve my workflow as well as always if you enjoyed this video please like it comment on it and share it and while you're here please subscribe for more content like this i'll see you in the next video cheers you
Info
Channel: Engineering with Utsav
Views: 38,992
Rating: undefined out of 5
Keywords: best laptop for programming, programming, software engineer, best laptop for programming and coding, best laptop for programming student, best laptop for programming 2020, web development, software developer, software development, best programming laptop, best laptops for programming, learn to code, programming laptop, software engineering, m1 macbook pro, how i set up a new laptop for software development, best laptop, nodejs, python, vscode, vscode extensions, vscode setup
Id: NdtRKvz9iwE
Channel Id: undefined
Length: 10min 52sec (652 seconds)
Published: Thu Jun 17 2021
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.