The building blocks#
Remember when you learned your ABCs as a kid? When you learned how to write and how to read? Okay, probably not, but there are similar foundations for working in CS. Before or while you learn a lot of other things, you should have these basics down. They will really help in the long run!
Your Computer#
A computer scientist needs a computer? What? It’s crazy, but I know a ton of computer science majors who are either really frustrated with their current computer (whether laptop or desktop) situation. I don’t want to come across as insensitive to different financial situations as laptops are not cheap, but once you feel financially comfortable, it wouldn’t be a bad idea to set yourself up for success. After all, you’re going to spend a lot, like, a lot of time with your computer; you might as well enjoy it!
I am always encouraging Mac over Windows, especially because you get that builtin Unix terminal so you don’t have to deal with PowerShell and other general Windows shenanigans.
Regardless of which operating system floats your boat, you don’t need to worry about hardware too much. It’s not all about RAM - coding takes minimal amounts [1] of memory. Space is cheap. If you really have money to burn, it’s nice, but not necessary. Maybe invest in a nice monitor for your eyes or chair for your back.
Typing + Keybinds#
It sounds silly, but people often underestimate how typing can help productivity. Learning to type at a reasonable pace (~60 WPM is a good, average pace) is a great idea when being a computer scientist. Your keyboard is where you’re going to work, like, all of the time.
You don’t have to have a fancy $200 keyboard with decked out keycaps or even a duck keyboard [2] in order to type fast. Just get quick with typing on whatever keyboard you have and it will translate between any other keyboards you use.
Keybinds and shortcuts are also important. The Visual Studio Code or IDE-specific ones. Or you can even figure out those vim shortcuts. Or you can just make your own. Either way, they make you so much quicker if you just invest a bit of time to learn. They are nice to quickly move through many files you’re editing - and you might even impress a few people at work!
If I really tried, I could probably not use a mouse for a few hours while coding. I know people who intentionally do that (this is not farfetched for computer scientists whatsoever), and do it well.
Git + The Terminal#
I’ve helped undergraduate & graduate students, professionals at jobs, and maybe even a couple of professors with Git before. I can’t stress enough how vital this skill is to have. You can learn any programming language and people will be patient with you, but if you roll up to a job not knowing Git either, I think that might be frustrating to your coworkers.
I won’t get into the specifics of Git and GitHub, but I will talk about some good practices later. If you’re looking for a tutorial, there are probably millions online. My friend hosted a great workshop on it a few years ago too.
On a similar note, the terminal is great to know and use. Know your file system and know how to use Git over the command line. While GitHub Desktop does the same thing, it has less capabilities for the complex stuff, and hides the details from you. Using the terminal tracks with what has been mentioned so far too. The terminal is great for quick coding if you’re into vim, and you can even run some sort of window manager.
More than that, the terminal is where you will run code. That should be enough of a reason in itself! You are bound to see binaries, applications and other repositories that you might need to run. The terminal is a vital building block to know.
The internet is your oyster#
The internet is there to help as your right-hand man of many answers. Whether it’s StackOverflow, Google, ChatGPT, GitHub, Geeks4Geeks, language documentation or otherwise, if you can admit you need help and go and find some, it goes a long way. There is a high chance that at least one other person on the internet has had the same problem as you. In the uncommon scenario when that’s not true, don’t be afraid to ask for help.
When I was first learning to code, I felt bad or dishonest looking things up as it felt like cheating and I knew it would harm my learning. There’s a balance to be found here. Give whatever problem you’re working on an honest attempt first, and then if you’re still stuck after trying a couple of things and (hopefully) asking a coworker or friend, hop on over to the internet.
It’s okay to be resourceful!