Hi, I'm KJ. Last year I graduated from MIT, and currently I am working on two startups where I
help to lead engineering efforts on daily basis. A lot of what I do involves coding, whether I am
reviewing code or developing my own. But I do not have a computer science degree, or even a
computer science minor for that minor. At MIT, I graduated with a degree in Aerospace Engineering,
while my humanities concentration was Economics. I do want to preface this video with the fact that
I did take a good amount of CS classes, and also aerospace classes that were in collaboration with
the CS department, so I was never detached from coding-related classes at MIT. In this video, I'll
talk about how you can develop coding skills, some awesome coders I know that also don't have a CS
degree, and ultimately how you can land jobs that involve coding even if you didn't major in CS.
While studying Aerospace at MIT, I became a systems-level thinker. I'll always be grateful
for the breadth of knowledge that I was able to accumulate over the course of my undergrad career.
As I got a better understanding of the physics and controls aspect of various systems,
it became much easier to understand how overall systems functioned.
And once I developed better coding habits and skills, I was able to piece my learning together
to contribute to and complete meaningful projects. At both Stanford and MIT, the
autonomous systems labs are lead by the Aerospace departments. At a high level, this makes sense.
In order to code a robotic system, you'd need an understanding of the physics of the robot,
the signals that are being sent, and a bit about how the electronics are configured. In general,
this systems-level mindset helps with planning how I'm going to tackle strictly coding problems
as well. Given any sort of timeline, I'm usually able to mentally break up a given task
into bite-sized chunks that allow me to push that project forward in an efficient way.
Some of the best hackers I know are not CS majors either. And I don't mean hackers in the sense of
hacking into a system that they're not supposed to have access to, I mean hackers in the sense that
they have ideas in mind, and are able to execute on those ideas effectively. Let's take Timmy for
example. In the last couple of years alone, he has helped develop some really awesome systems. He was
able to code three robotic arms to move in sync to allow the robot to skate around on a platform.
He was able to develop pure pursuit algorithms to move an autonomous car around a virtual city. And
more recently, with Deuce Drone, he was able to implement a precision landing script from scratch
to our drone in a matter of months. To this day, he is one of the best code debuggers I know as
well. Timmy majored in Aerospace Engineering. Another name that you may recognize is Kevin.
Kevin is another fellow MIT aerospace engineering grad, and he is also very skilled at hacking away
at projects. Kevin is skilled with conceptualizing and implementing hardware components,
but he is also a skilled coder. Kevin has also worked on autonomous
vehicle projects and many other side projects throughout his time at MIT. He has even been
helping to develop a new location-focused social media application called Lattice.
Last year when I was touring Google's facilities, I even talked to an Stanford Aerospace Engineering
PhD graduate who was working as one of the lead engineers for Google Maps reviews.
Hopefully with these examples, you can see that a CS degree isn't a requirement to become a great
programmer. You can be a great programmer and you can land prominent software-oriented
positions without a computer science degree, but you have had to consistently hone those skills.
The best way to learn how to be an effective programmer is to just work on something. Of
course, don't start a project without at least some understanding of how code works and is
structured. But beyond that, I truly believe that you'll learn more taking a coding project
to completion than you would studying computer science theory for a year. A lot of the times,
universities teach really high level theory that students may get a good understanding of, but
ultimately still don't know how to implement any real projects. In general, it's very difficult to
fully grasp a concept until you actually execute it in a real system. During my undergraduate
career, I was fortunately able to take very solid project-oriented classes. I still learned a lot
of theory and structure, but I definitely learned the most actually implementing code onto a system,
whether it was physical or virtual. So if you're school offers project-based coding classes,
take those, and if not, I would say to pick up a side project that interests you. Hacking your way
through a challenging project could prove to be that thing that unlocks new skills.
I admit that starting a new project could be daunting, but fortunately,
there are lots of online resources that can help you develop the basic tools to start working on
your own side projects, whether you are taking coding classes in school or not. For example,
you can get a better understanding of web development using the sponsor of today's video:
Skillshare. Skillshare offers thousands of inspiring classes for creative and curious people,
on topics ranging from design and web development, to freelancing and entrepreneurship.
They make sure to have classes for all experience levels, which I personally really appreciate.
Also, most classes are less than an hour total, and they are made up of short lessons that fit
into any schedule. I recommend productivity classes in order to help you stay focus,
and also any class that gets you acclimated with professional creative tools like Photoshop or
Premiere Pro. I personally am really interested in the class: "DIY Product Photography: Style and
Shoot Creative Stills" by the photographers at Mango Street Lab: Rachel and Daniel.
Everything is tailored for efficient learning, so there's no ads, and new premium classes are
launching all the time. This makes it really easy to stay focused and actually work on new skills.
And this is all less than $10 a month with an annual subscription, so I cannot genuinely
recommend Skillshare enough. The first 1000 of my subscribers to click the link in the
description will get a free trial of Premium Membership so you can explore your creativity.
The cool thing about learning to code is that most of the information that
you'd ever need for most projects is already well documented somewhere on the internet.
The more experienced you get with coding, the better you'll get at accumulating the right set
of resources to complete an overall task. Even if your project may seem inherently unique, most of
the time, that project will still consist of bits and pieces that have been done before in the past.
There's a running joke that software engineers make a lot of money just for knowing what to
search on stack overflow. Although of course this is a vast understatement of what it takes
to complete a coding project, there is some truth to the fact that most of the resources to
get a job done are readily available. No matter how well I understand certain coding concepts,
Stack Overflow and YouTube videos were definitely key in me finishing just about any coding project
I've ever done. All I'm trying to say with this point is that unless you're working
on things like cutting-edge PhD research, you can start to piece things together.
As someone who is now involved with recruiting and assessing a candidate's ability to do well
in more software-oriented roles, I can provide some insight into what I look for. Regardless
of your degree, most companies will hire you if they feel like you could do well at your job.
At ChipBrain, we even have some current undergraduate students who have been doing an
incredible job, and they don't have any degree yet. What I look at first, more than anything,
is what type of experience the person has. I am not talking about those blanket statements of 5
to 10 years of experience or anything like that, I'm talking mostly about projects. What projects
have you worked on? What challenges did you face while completing those projects? And how did you
overcome those challenges? Answers to these questions tell me a lot more than a list of
completed courses a person has, or the field that a candidates degree is in. Let's say I'm trying
to fill a hypothetical app development role. A physics major who has successfully deployed 3
apps to the App Store looks much better to me than a CS major who took an app class,
but had never taken the initiative to go through the process of building one themselves.
Taking a project from conceptualization to a finished product shows me that you were able to
overcome the various challenges that came up. It essentially shows me that you were able to
problem solve your way through a task that needed consistent attention and work to push through.
As I mentioned earlier, I'm grateful for the breadth of knowledge that I obtained at MIT.
For all of those high school students who are watching this video, really shoot to apply to
college programs where you'll be able to take most of the classes you're interested in.
For example, if you wanted to take classes in both physics and computer science,
make sure the specific program you apply to allows you to do so. This makes it so that you can take
some classes that truly interest you, even if they won't count for credits within your major.
So I do encourage you to take as much CS classes as you'd like, but I also encourage you to branch
out and get acclimated with some other areas. In general, the goal for an aspiring engineer in
undergrad should be to become the best problem solver you could be. And the more exposure you
get to various fields, the more angles you may have to approach certain problems in the future.
I know I talked a lot about why you don't need a CS degree to be able to get software
engineering-type jobs, but in hindsight, I may have flipped my decisions a bit.
I mean that I may have majored in computer science, but still taken the cool aerospace
classes that I wanted to take. However, it isn't inherently clear to me that if I took that route,
I would be in the same position I am today. My experiences so far have carved out the path that
I'm currently on, and I'd never know what would've happened if I majored in computer science instead
of aerospace engineering. I do know, however, that right now I'm doing things on a daily basis
that I'm passionate about. I always advise people to do what you're passionate about because
at least if you're passionate about what you're doing, or if you have goals that you
really want to achieve, you'll be able to push through the overwhelming days.
Thank you all for helping me reach 100,000 subscribers here on YouTube. I'll continue
to document my journey through life through this channel, so if that interests you, make
sure to subscribe and have the notification bell clicked. Also follow me on Instagram and Twitter
to see what I'm up to. As always, thanks for watching, and I will see you in the next video.