As the founder of a company where my largest static expense is engineering salaries, I’m over here just chomping at the bit, eagerly awaiting the moment I can fire everyone and line my pockets with all those juicy savings. See, about one year ago, I wrote an article titled, “9 Months with GPT-4: Can I Fire my Developers Yet?” and I thought I’d give you a little update on Allan’s employment status.
GitHub has been re-founded on copilot, rumors of an AI superior to GPT-4 abound, and you’re trying to decide if it’s worth it to learn what a red-black tree is.
Yes, computer science is hard, but you already know that. You don’t want to know if computer science is hard. You want to know if it’s too hard. You want to know if having to learn computer science is going to be a real obstacle in your way to achieving your goal.
The following names are all valid variable names in nearly every programming language: dogName dog_name DOG_NAME dog-name But which one should you use in your projects? Let’s chat about the popular naming conventions used in programming, and why you might choose one over another.
In today’s modern, fast-paced world, we look to StackOverflow, Reddit, and hands-on courses to learn about computer science and software engineering. But there are some real benefits to using books as an additional resource.
Getting into computer science can be a daunting task. There are so many career paths down which a computer education can take you, so many programming languages to master, and so many skills to learn. I’ll give you a basic rundown of what computer science is, along with a plethora of resources and tools to help you carve out your own pathway into a computer science career.
In a word, the future of computer science is promising. In a few more words, the future of computer science is promising, but with challenges to overcome.
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?
There is a common trap that we fall into as developers, and it is believing that because some code “worked” that the code was written “correctly”. In reality, for most technical problems, a good developer can likely point out several different solutions. Any of those solutions might be perfectly reasonable, while none of them is the single “correct way”.
“Dead Poet’s Society” is a classic film, and has become a recent favorite of mine. There’s a scene in particular that I enjoy, where Robin William’s character explains that it’s bad practice to use terms like “very tired” or “very sad”, instead we should use descriptive words like “exhausted” or “morose”!
In cryptography, the one-time pad, or OTP is a way of encrypting information so securely that it’s impossible to be cracked. That said, OTP has a major drawback in that it requires both parties to have access to the same key before a message is encrypted.
I recently had a ticket opened on my team’s backlog board requesting the ability to bypass our API’s caching system. For context, our front-end team uses my team’s API to make fairly heavy requests to ElasticSearch, and one of the features of our API gateway is to cache the results of heavy aggregations for ~30 seconds. It turns out, every once in a while they need to run two of the same query within the ~30-second caching window and want an updated result set.
Sorry it took so long for me to get this one out! Data Structures and Algorithms 2 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.
Functional programming is a way to write code where programs are created strictly through functions. Functional programming has gained quite a bit of traction in recent years among the development community, mostly because of the benefits it provides.
“Don’t repeat yourself”, or “DRY” for short, is a somewhat controversial principle of software development. It aims to make code cleaner, which is to say less buggy and easier to work with. DRY purports to accomplish this by reducing repetition in your codebase and replacing that duplicate code with abstractions like functions, classes, and methods.
What is a binary search tree? A binary search tree, or BST for short, is a tree where each node is a value greater than all of its left child nodes and less than all of its right child nodes. Read on for an implementation of a binary search tree in Python from scratch!
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.
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.
There are so many reasons to want to get a certificate in computer science in 2021, especially when you compare it to alternatives like getting a degree or attending a coding bootcamp.
It’s really hard to get your foot in the door for engineering interviews, especially if you have no experience and are looking for an entry-level position. Often times, more experienced candidates looking to find a higher-paying job can also have trouble. As an employer myself, I can tell you that one of the biggest mistakes I see in 75% of resumes is using a visually boring template. When I’m sifting through forty or fifty applicants, it’s really easy for my eyes to glaze over. Think of your resume as your website landing page. You need to catch your employer’s attention by calling out your biggest accomplishments and selling points at a glance.
There are many jobs within the software industry, and most of them are easier to land or are higher-paying once you land them, if you have a solid grasp of computer science fundamentals. You don’t need a degree from an accredited university in 90% of cases, but you do need to learn the material, whether it be online, on the job, or in a formal setting. Let’s explore the most common computer science job titles and their associated compensation, details, and duties.
As technology continues to advance, the need for professionals who are capable of utilizing and understanding computers continues to grow. This demand creates a strong job market, with excellent pay and exclusive opportunities. However, there are two fields of study when it comes to working with this technology: Computer Information Systems and Computer Science. Both are useful areas of study with in-demand skills, but what are the benefits of each, in comparison to each other? We explore that below.
Prehistory
When I was looking into getting my first job related to programming, I had no idea what the difference between a certificate and a diploma was. I was terrified that I’d have to go back to school and spend 2-4 years getting a degree in computer science before an employer would even blink in my direction. Unfortunately for me, two degrees in conservation biology aren’t enough to attract any serious coding employers. Then I learned about boot camps, which eased my concerns some, but I didn’t have the time or money to spend on a 15-week program.
Heuristics in computer science and artificial intelligence are “rules of thumb” used in algorithms to assist in finding approximate solutions to complex problems. Often, there’s simply too much data to sift through to come to a solution promptly, so a heuristic algorithm is used to trade exactness for speed. However, because heuristics are based on individual rules unique to the problem they are solving, the specifics of the heuristics vary from problem to problem.