Is it a bit dramatic, perhaps, to say that the fate of the world rests on computer science and that’s why you should learn computer science? Maybe, but not by much. Computer science is “the study of computation and information, and is a subject which involves you in the very make-up of the world,” the University of York posits. Computer science is everywhere in our everyday lives. I wrote this article on a PC; you’re reading it on one, or a mobile phone.
Sorry it took so long for me to get this one out! Advanced Algorithms was just released, and I’m excited to let you all get your hands on it, even if you’re just auditing it for free! The more advanced material takes quite a bit longer to produce, I wanted to triple check to make sure I got everything correct and that I’ve presented it in a way that makes it easy to understand.
When you’re in a position of wondering, “Is a coding bootcamp worth it?” you should look at several factors. Coding bootcamp costs, on average, around $13,000. This holds true no matter if you choose to attend coding bootcamp in person or online, though there’s a lot of variance in how much coding bootcamp costs, ranging from $3,000 to $20,000 depending on the language, the length, and who’s running it. You should also look at alternatives.
With the influx of interest in the edTech site I’ve been building, I’ve been getting a question that I don’t think I had previously taken the time to really think through, “Is computer science hard?”. Like most things, the answer depends on your perspective and current situation. That said, my guess is that a standard computer science education is easier than most of my readers think. Take as an analogy two friends, one weighs 300 lbs and is trying desperately to lose weight, the other friend weighs 100 lbs and wants to pack some on.
Last weekend I did a major revamp of boot.dev’s payment strategy, after toying with the first version since I launched in the summer of 2020, as it turns out, the microtransaction (gem) strategy didn’t work out to the benefit of my students, nor to the growth of boot.dev. As a result, I’ve flipped my funding strategy on its head and decided to make all of boot.dev’s content free to audit. Let’s take a look at exactly what that means.
“Software engineer” has become a ubiquitous term for people who write, deploy, architect, or sometimes even simply test code. In reality, I think there are two classes of “software engineers”; those who understand computer science well enough to do challenging, innovative work, and those who just get by because they’re familiar with a few high-level tools. The laziness with which the tech industry has adopted the term “software engineer” has made it harder for us to distinguish between the two.
At work, computer scientists build and deploy programs, algorithms, and systems to solve real-world problems. In most tech jobs, they spend the majority of their time working in teams on new software products. Some computer scientists are more research-oriented however, and may spend time developing new algorithms or pushing the boundaries of what academia knows about certain CS questions. It’s important to understand that most students with a computer science degree become developers or software engineers.
What is a Binary Search Tree? A binary search tree, or BST for short, is a tree whose nodes store a key that is greater than all of their left child nodes and less than all of their right child nodes. Binary trees are useful for storing data in an organized manner so that it can be quickly retrieved, inserted, updated, and deleted. This arrangement of nodes lets each comparison skip about half of the rest of the tree, so the entire search is lightning fast.
A linked list is a linear data structure where elements are not stored next to each other in memory. Unlike and array, elements in a linked list use pointers or references to each other to keep the list intact. Like arrays or traditional lists, linked lists are an ordered collection of objects. Linked lists stand apart from lists in how they store elements in memory. While regular lists like arrays and slices use a contiguous memory block to store references to their data linked lists store references or pointers as part of each element.
The most important thing to understand about these two fields of study is that, ultimately, they are similar. At the end of the day, Software Engineering and Computer Science will both help to make you a better programmer and developer, and the only difference between the two is how they are applied. Software Engineering tends to be more practical, and Computer Science tends to be more theoretical. In a way, Software Engineering is just applied Computer Science, and using that as a starting point, we can examine the differences between the two.