CJ: Welcome to build and learn.
My name is CJ.
Colin: And I'm Colin.
And today we're gonna be talking about all the different ways that
one can get into programming in 2022.
CJ: There's so many different paths now, maybe 20 years ago you had to go and get
a computer science degree or get a degree where you were, you know, learning how to
program or learning how to code in order to become a paid professional programmer.
But.
Today, there's just so many alternatives.
And so in 2022, we wanted to just run through our experiences and our
background, getting into software development and also kind of sharing
different ways that we've seen other people or our colleagues or
our friends get into tech that are not necessarily that traditional
computer science background.
Colin: Yeah.
And I think this topic kind of came up because when looking at our
backgrounds, they are definitely.
That traditional, what everyone thinks or used to think, what
it takes to become a programmer.
I have a marketing degree, we kind of talked about our winding path into tech.
In the first episode, we won't do a full recap of all the MySpace days and things,
but, I think it'll be good to just look at why are we still clinging or who is still
even clinging to that traditional path?
CJ: If you are thinking about getting into programming, if you're dabbling
or dipping your toe into it, or if you just see like, Hey, my friends that are
programmers have pretty nice lives and jobs and stuff, and that's something that
I would like to do, or I'm interested in exploring as something that I might do,
then this should be a good episode for you to help like evaluate some different
options and different paths that you might take as you're considering getting.
Colin: Definitely before we do that.
You did a Twitter space this morning about remote work gear, um, with Chris.
And we definitely gotta talk about these cords.
So what are all the things that are in front of you right now
that we don't see on video?
CJ: I posted a picture on Twitter.
I might take it down.
I, I didn't actually like look and double check and make sure it's like,
safe to share, like doesn't have addresses on things on my desk, whatever,
Colin: it's got your passwords on the post-it note on your desk and
CJ: My setup on my desk is an El Gato key light.
I have an a6400 camera that, um, is this like 4k mirrorless DSLR?
Two laptops.
External monitor.
I have a microphone that plugs into a focus, right.
That plugs into the cloud lifter.
Plugs for charging phones.
I have plugs for the, you know, the keyboard and whatever.
Thankfully I have a wireless mouse.
I've got the.
Colin: and save one.
CJ: Yeah, I'm a huge fan of the magic mouse, but, Colin I gotta tell you
when I moved in, I had a broken ankle.
And so when I first got in, honestly, like setting up my desk with a
broken ankle, Was a huge pain.
It was like a giant project for me to like hobble around.
I'm on crutches.
I'm on like, whatever pharmaceuticals, you know, like just trying
to like assemble everything.
And so I got it set up.
I got it working and I've been working for the last six months at this desk and
I've just never taken the time to like go and hook up all of my cords and like
get the cord management under control.
But I'm like super curious to hear your.
Recommendations for cord management, as someone who runs a collective,
a coworking space that has tons and tons of desks and cords and
appliances and all sorts of stuff.
I'm sure that you've got a lot more practice than others
at managing these cords.
So people don't trip on them.
And so they're not hanging out everywhere, so yeah.
Let's please help me, please.
Help me.
Colin: Yeah, we'll put some things in the show notes, but the, uh, there's
definitely some for, for anyone who ends up seeing whatever this video
is at recording, there's some things like braided, uh, cable managers.
I'm a big fan of like tiny little sticky.
Hooks.
The underneath of my desk has there's, there's an absolute mess underneath there.
They're all pretty like wired through different tracks and, and just
off the desk, for me, it's like a visual clutter is mental clutter.
We'll give you the disability pass for having a broken
ankle when you first set up.
I also just like, I see a lot of desk setups on, on Instagram and other places.
I'm not aspiring to have a desk that's like prettier than, than it is useful, but
it's nice to have things out of the way.
And there's a lot of good cable managers for the coworking space.
The thing that I do hate, it's like, I love like having, we have some
pretty nice furniture, but then it's like, where do you put the cords?
Because everyone needs to plug in their laptops and you can't have like
extension cords that are ugly and you'd be surprised, but you can spend quite a
bit of money on pretty extension cords.
There's a company called Conway electric that makes the, like the most
prettiest like search protects scene.
They're expensive.
And then they're like, we're only gonna give you two outlets
on this expensive thing too.
So if you wanna go down that rabbit hole, the whole interior design and, and things.
It's interesting.
It's also interesting just because of so many people not going back
to offices, I think it's a little overblown that we're never going back.
It's just that a lot of companies like, you know, at orbit were
fully remote, but it's hard to replace that going into an office.
And when you do.
You wanna have power, good lighting, good desk, you know, sit, stand
desks, whatever that looks like.
So, uh, yeah, we can put some stuff in the show notes.
Maybe some, some good like desk setup, Instagrams too.
CJ: Nice.
Yeah, I got.
Extension cord surge protector thing for our family, that it sits
underneath the couch upstairs to help manage cords like in the living room.
I just haven't, invested in something that like that from my desk, but it's
really cool because it has, I wanna say it has 16 different outlets.
That are, you know, your normal us style outlet that you can plug into, but it also
has USB outlets, a bunch of USB outlets.
So if you want to charge, you know, everyone right now in our household
has like 10 devices that all need to be charged via USB, whether it's,
you know, I don't even know there's a million, a million different
iPads and, phones and tablets.
Gosh, the kids have all of these remote control cars now and the remote control
car batteries are all charged via USB.
So having that block up there has been, has been really killer.
So I don't know, I gotta get something like that set up for the office.
Colin: Nice.
CJ: yeah.
Should we get into it?
There's like several different paths that I think people could take.
Maybe we can do some Trailhead.
Colin: Let's do it.
CJ: There's two, buckets or two categories.
Of paths or ways that you can get into programming.
And also just generally into tech, if you wanted to join like a, a tech company.
And so I would say that one of them, I would call educational where you're
going to go out and intentionally learn how to become a programmer.
And another one is sort of this like side.
Or backdoor entry into a role where maybe you're starting in a, a role at
a company that has lots of programmers and software engineers and developers,
but you are not necessarily, working as a programmer initially, but you're in
some role that is slightly technical, that you can then pivot into a role
where you're writing a lot of code.
Colin: That technical support route tends to be a really popular one,
even through boot camps, because to do support, you know, you're going to need
to be technical and more, I would say in problem solving, I think less code, right?
It's.
This, person's reproducing this issue.
And that's what we think about when we're coding is like, okay,
how do I reproduce this myself?
What do I need to go look at, check on.
And you on working for that company will hopefully have access to the
tools and, and the data that you need to go, like, diagnose that.
and, we've known some people who have gone through that path of technical support.
Okay.
I learn a little bit of code, a little bit of APIs, maybe it's our internal tools.
And then I get promoted to technical support manager or make a sideways
move again into junior developer, level one level, two developer
with mentors from the team.
And, um, you know, it really kind of just shows that like you can apply yourself.
To problem solving.
And then what other language that, that takes place in
doesn't really matter after that?
CJ: Yeah, totally.
Maybe we can start with that second bucket of like the side door, back
door entryway, and that like product management comes to mind too.
Like if you have an eye for design and you would.
Really comfortable setting up Figma templates and talking to users and
figuring out what they need, what they ultimately really, really, truly need
from the product in order for it to, you know, function and be successful.
That is a interesting way to get into, to tech.
And I don't think that there are very many.
Courses that you can take to become a product manager.
Like, I don't actually know if there's a way that you can just go to
university and get like a four year degree in, in product management.
I don't know if that's a thing, do.
Colin: I don't know, but there is a really cool kind of boot camp style.
I think it might be at virtual is called product school.
And like it is a direct path to becoming a product manager.
They have a lot of free things.
They have a community, they have, Twitter spaces and, and YouTubes, but then they
have like what you would just think of as like the bootcamp model for product.
Managers and you've got companies sponsoring it that want product managers.
If there's also ways to get into this, without going down that traditional
path, there's a book called the mom test.
That's really good.
Essentially, like when you think about like, when you make a thing
and you show it to your mom, They're gonna be like, oh yeah, that's great.
I love it.
Right.
It's sometimes you get that from customers where, regardless of what you make,
they're gonna tell you that they like it when really it might not be that good.
And so it's like how to get that critical feedback, cuz product management,
isn't just like project management.
It's taking customer feedback and turning it into product.
So if, if you like talking to people and you wanna be in tech,
like it's a really cool role.
And kind of as like gonna side, like there was a, there was a funny like meme
going around where if you can plan a vacation or a trip with more than six
people, like you'd be a really good project manager or product manager.
because it's like, okay, who's got a spreadsheet to go camping
and where are we all gonna be?
And how are we all gonna get there and, and make sure that everyone's
still, you know, where they need to be when we, when the trip is.
CJ: Yeah, that's a great analogy, right?
It's wrangling, wrangling all the cats to make sure that something
is built that's useful and is yeah.
Empathetic towards what the users like ultimately need.
I guess there's also sort of approaches you can take where
you become a solution architect.
That's teaching people, maybe even like pre-sales or post-sales teaching,
you know, giant clients or these enterprise clients, how to integrate
with some product or service.
So I've seen this kind of, role for Salesforce or for, you
know, different implementation.
Specialists another route might be like marketing.
If you get into marketing two developers and just kind of like building up your
chops around all the, the no code tools that are available for really building
out a growth in marketing engine.
Understanding how Zappier works and how web hooks works is a great intro
to like, okay, now I wanna write my own custom JavaScript function
or something that handles this web hook integration some special way.
Colin: Mm-hmm Yeah, I think that the whole glue and no code is a great way
to start to think about the concepts.
There's also like these types of product, school things.
There's things like, hacker news, or I guess Y Combinator or startup
school, all of that curriculum is free.
If you're thinking about getting into tech, if you wanna go to apply to a
startup, it helps to know these things.
Like it doesn't mean that you need to go out and start a company.
Especially if you're trying to get into tech, probably not a great idea to start
a company, but if you have no other options, like starting a company might
be the fastest way to getting into tech.
As long as you can either hire or learn to code.
On the go I guess that also ignores, like having a safety net, financial safety net
to allow you to that time to build that.
I would.
Definitely recommend learning on someone else's dollar though.
So getting into a company that is hiring a junior, or again, like we talked about
going this technical support route, building up your chops, whether it's
on the job or not, you know, at orbit, some of our engineering managers really.
Focus on, like, if you wanna learn a thing, don't try to learn
it on the night and weekend.
You know, you're probably gonna have to practice it on the nights and weekends,
but like take, take an hour in the morning and start your day reading
or doing the tutorials that you need.
If it's going to help you, you know, progress in your skills
because that's gonna benefit.
You know us as a company too, if it's something that we need.
But it helps to just kind of immerse yourself in the stuff.
There is an endless amount of YouTube content out there.
There's an endless amount of Twitch streams.
There's an amazing, I think, I think it's still free.
Um, mastermind IO on Twitch.
He runs an entire boot.
On Twitch.
It's amazing.
I think it might also be on YouTube and it's, it is live like he does
live lectures on Twitch and then there's assignments and projects.
And so there's so many different ways to get into this.
And I know we're gonna, this is leaning now more into the educational paths,
but you know, a bootcamp doesn't mean that you have to drop a bunch of money.
It might look like a Twitch bootcamp or a YouTube bootcamp or free
code camp, as options for that.
CJ: Totally.
When we say bootcamp, bootcamp, if you're not.
Here.
And you're just kind of curious about learning how to program, boot camp, I
guess, is a term that started becoming more popular, maybe 20 10, 20 11, 20
12 ish, where there was, a type of, job training school called dev bootcamp.
And this was.
The model was that you can go to this bootcamp, you pay like $12,000 or
something, and you're there for nine weeks and you learn how to become a
web developer and you learn a bunch of basics for how you can build websites.
And from dev bootcamp, it's now spun out and there are
thousands of different, yeah.
There's a whole bunch of different payment models, but, some of
them are you pay your tuition is based on how much money you make.
after you graduate from the bootcamp, others are fixed fee there's, a bunch
that are free, like free code camp.
But yeah, when we're talking about boot camp here, we're talking about in.
Usually we're talking about some sort of immersive program where
there is curriculum outlined for you.
And there are often cohorts of students that you will go through
the bootcamp with, that you can lean on and work with and learn from.
And so that's when, yeah, when we're talking about bootcamp, that
is one of, I think the educational paths towards becoming a programmer.
And it's a very popular one, right?
Colin: I love that free code camp and some of these Twitch models and things exist.
the Twitch one probably is, has more accountability cuz you are showing up
at a certain time to watch a lecture, interact, ask questions, things like that.
Free code camp is very unassisted.
So it, it's also important to kind of think about how you learn a lot.
Learning and getting into tech is learning how to learn and
learning how you learn as well.
Right?
Some people are visual learners.
Some people are going to need to have accountability, buddy that they're
learning with or some class to show up to.
And so with the pandemic, a lot of these boot camps went full remote,
which is also great if you're not in, you know, a coastal city where most
of these boot camps historically have been, there are now boot camps in every
state and every city for the most part.
If you are gonna look at a bootcamp, Definitely look at reviews, check there's
like now sites that review them because there are some shady boot camps out there.
I think the big thing here is it's like they came into being, because the
skills that you learn in a computer science degree, you might go through
four years of traditional education.
You're not necessarily set up to be productive as a software
developer when you graduate.
It really depends on the school.
The curriculum, all of that, I think schools are just a little bit
slower to change and they're not gonna be necessarily teaching you
react and, and things like that.
So it's important to think about that because the cost for a four
year is going to be a lot more in some cases than a bootcamp, the
boot camps will take less time.
However, you also don't have a lot of experience to put on a
resume or things like that either.
Two things for you would be, if you had to do it all over today, do you
think you would get a CS degree or do you think you would do a bootcamp,
or a flavor of both of those.
CJ: Reflecting back on my experience, I think I've, I got
different things from each of them.
So from the bootcamp, there were a ton of very applicable skills for
being a web developer, in particular.
If you.
Want to become a web developer, get a job and start making that
sweet, sweet web developer money.
Then I would say go the bootcamp route the four year computer science degree.
I'm super torn because I, while I don't think I learned a ton of
stuff in the CS degree that was directly applicable to my day to day.
I think there is a chance that getting a four year degree can improve your
career in a few different ways.
Like, number one, if you are really involved socially in college, you can
build up a network of people that you can lean on for the rest of your career.
And, you know, that'll be, that'll be invaluable.
Number two, it's a chance for you to sort of take things slowly.
And so if you have this four year.
You often might be offered courses that let you dive deep into topics or
concepts that you wouldn't otherwise be exposed to for instance, like compiler
design or, you know, computer vision or these weird things that are pretty fun.
I think if I was gonna do it again, what I would recommend.
Maybe try and go get several internships or take a year off between high school
and college and go, try to build a bunch of stuff and then go and get a CS degree.
Once you realize like the benefit of understanding data structures
and algorithms, or you understand why it might be nice to know how.
Yeah, how compilers work, because I think when you go, when you jump straight
from high school, right into college, you just do your four year degree.
It's an extension of high school and you don't necessarily value the content
that you're going through as much as you would, if you knew it later.
I honestly have joked often about the fact that I think it would be super fun
to go back now and redo the CS degree
Colin: been thinking of that
CJ: Exactly.
Colin: Think what you, what you said about valuing it, you know, the
other word would be like, I, I didn't appreciate it when I was in, in college.
Right.
Like at the same time, I think back would, I wanna sit through that again
and that's where it's, I'm not sure.
Right.
And cuz like for me, I don't have a CS degree.
There are things that I wish that I had sat through in those classes and I've
even looked at like, The open courseware for MIT and things like that to just
see, like maybe I just do the coursework, but not sit through all the stuff that
a university makes you go through.
What I've always thought would be interesting is thinking of
boot camps as almost like a finishing school after CS, right.
That.
CS is gonna teach you a lot of the fundamentals, the data structures,
the stuff that, you know, computer vision and compilers is never gonna
come up in web development bootcamp.
Right?
It's there's not enough time.
You're not gonna use it in your day to day.
But when you see some of the really interesting talks that
like, I think there was like the.
There was a really good Ruby talk at the RailsConf that's like, you need to be a
computer scientist to figure this out.
I don't think he had a CS degree necessarily.
He just learned it as he went, but having that appreciation and
learning, just like a bootcamp.
It also depends on what school you are going to, what program
and what they're teaching.
There's a really cool program at schools.
Now that's called human computer interaction.
So you can get a degree in that instead.
And so that one might even set you up.
If you wanna be a designer.
Or a product manager, right.
Where it's not only the coding of it, but it's how do humans interact with
technology and how do we think about that?
I think the challenge, I don't blame universities for this is
that the surface area for what to there is to learn is so large.
The thing that I see most with computer science grads is that they have never
worked with someone on a project before.
And I think this is like, you know, the idea that schools are afraid,
people are gonna not do an assignment themselves and not be able to code
by themselves, but like you don't build everything by yourself.
And so knowing how to collaborate on GitHub and use git, or
any of those kinds of things.
That's just one piece of the puzzle.
And you know, that finishing school idea would be like, how do we help you?
Like drop you into a group project, learn how to collaborate.
You're not always gonna be right.
You know, stuff like that.
CJ: You mentioned it's really important.
Which school you pick for your bootcamp, but also for a four year degree, two
year degree, whatever educational program you're gonna go through.
Definitely do your research beforehand.
There are some computer science programs that have produced engineers
that I have worked with that have been far in a way better than others.
And in particular, um, the Oregon Institute of technology, O I T.
Has a stellar program.
I don't know, like a lot of details about the curriculum, but the folks that
I've worked with that have come out of OITs program have been just phenomenal.
And so when we're talking at like looking at comparing, maybe someone who
graduated with the CS degree from UNR versus O I T versus Carnegie Mellon or
MIT or something like that, you're gonna have very, very different experiences.
Look at all of the requirements for that four year.
That are not actually about programming.
What is all the cruft that you have to get through just to get the degree?
Like, you're gonna have to go learn a bunch of maybe, I don't know, whatever,
like, yeah, I know I don't wanna bag on humanities, but I think that's another
thing that you underappreciate while you're in college and you're just like,
oh gosh, I just wanna get through this music appreciation class or whatever.
But like now I would, I that's another category of things I would love to
go redo is like, I wanna retake music appreciation and core humanities and
all this stuff now that I kind of have.
Time to do it slowly and appreciate it and not just rushing through tests and mold.
Colin: I don't know if you've encountered this.
There are a shocking number of really good developers that I have interacted with.
The last decade that are all from CU Boulder, the school of mines
specifically, like, and which was really interesting to me because at Nevada,
at UNR here, we have a strong school of mines as well, but I don't know
that they focus very heavily on tech.
Like I was like, what is it about mining that is producing?
Software developers.
and it was really interesting, there's a, startup accelerator called Techstar.
That's based outta Boulder.
They just farm so many developers out of there.
And it's amazing, like it's in their backyard and maybe
it's a chicken and egg thing.
Like, I don't know which one was there first.
Right?
Is it, was it because there are startups hiring people that.
The curriculum and the students just, you know, learned what they needed to learn
or, you know, are there a lot of startups happening because the school is there
and they're producing great developers.
We don't, we don't really know, but, schools like OIT Boulder, most
schools, you know, it's gonna be hard to find like, is it a good program?
It's more like, is this a muscle of the school or is it just like,
they tacked it on to say that they have it more, more than.
CJ: Yeah, it'd be interesting too, to have like talk to one of your friends
or find someone who is in tech, who is a like professional software engineer
and show them the curriculum and ask like, is this curriculum actually gonna
help me when I get a job in the future?
And if you're learning, like, I don't know the theory of finite,
autonom like, probably not.
Colin: Or, or even asking them like, what do I need to add to
this in my extracurriculars, right.
To be productive.
Right?
Like I'm gonna learn these things through my school.
Awesome.
Because I do think like there's a little bit of a, having a degree is going to
get you through a lot of interviews.
That might not.
And it's an unfortunate reality.
I think a lot of people are getting hired without degrees.
Now that's becoming less of a thing.
I'm gonna waive the flag for the fact that universities should not cost what it does.
It should not be putting people into extreme debt.
If you can do a in-state school, that's cheaper and it has a decent
program and you can augment it with.
GitHub university classes and, and learning Stripe through
the Stripe docs, right?
Whatever that is like, do it.
I would not put yourself into extreme debt because while you will probably be able
to make a good income afterwards, right.
You still gotta now dig yourself out of that hole.
When you could get to the same place without putting yourself in that hole.
And that's a really understated thing.
You see the same with doctors and lawyers, right?
It's like, we're gonna go into a lot of debt and we're gonna
rationalize it because we're gonna make a lot of money on the other
side, but it will take a long time.
And it does weigh on you.
And, you know, we both talk about kind of personal finance stuff
a lot and getting out of debt, especially for school my degree does
honestly does not come up a lot.
And so I'm glad that I, it didn't take me very long to pay off, the school.
Cause I think if I was still paying it off, I would feel a little bit differently
about the whole system right now.
CJ: mm.
Totally.
Yeah.
In terms of extracurriculars too, those are all great points.
I think another thing that I did not do, but that I would recommend if
you are doing one of these four year programs is to get summer internships,
go out and get summer internships.
Every single giant tech company has them.
They start usually sourcing for them in the fall.
And then you start in the spring.
I know that Stripe does this.
I know that Google does it.
You know, all of the, all the big companies are gonna have some
sort of summer internship program.
You'll come in, do like nine weeks of usually it's highly paid work.
Sometimes it's not paid, but typically it is highly paid and you'll do a project.
You'll ship a project.
You'll learn how to work with other people.
Depending on the size of the company and what team you get placed on.
Sometimes you might get garbage projects, but other times you might
get really big, meaty, impactful things that you can work on.
That's another awesome bullet for your resume.
If you can say, oh yeah, you know, this summer I worked at,
Netflix in that summer, I worked at Stripe and this other summer I
worked at Google or whatever, like
Colin: You can just start collecting all those Fang, those
CJ: up
Colin: jabs.
CJ: F badges or whatever.
The other thing I wanted to mention too, was that there are boot
camps that, Especially set up to serve underrepresented groups.
So here in the Boston area, there is a bootcamp called resilient coders.
I've worked close with Nick de Jesus, and I know that is a, an awesome
bootcamp for black and brown folks that are wanting to get into tech.
There's also, she codes that I owe.
Lots of opportunities to get into boot camps that are, set up for under
represented folks that, and if you're, if you identify as someone that fits into
one of those groups too, there's A lot of opportunity to enter a pipeline through
a bootcamp where you'll go through the bootcamp, learn some set stuff, and then
be, set up really well to get into the job market through things like the black
tech pipeline or similar, uh, programs I know in the Ruby community, there's this w
NMB dot RB for women and non-binary Ruby.
That's another like really great organization that helps folks find roles.
There's boot camps that are, specialized for folks that have
been previously incarcerated.
So there, there's kind of like a lot of different flavors of boot
camp that might also be interesting.
Colin: Yeah, I think we started out talking about how there's
so many different paths.
And I think the important thing too is it's like not, everyone's gonna have the
same amount of time, attention, money.
Sources.
And the beautiful thing is that there are these, you know, specific boot camps
for underrepresented groups, but then there's also these, like, you know,
when do I have time to learn to code?
If it's only gonna be at night, there are going to be options, whether it's
free code camp or joining, you know, meetups like, w N RB, things like that.
Because you're also gonna.
Pairing yourself up with, you know, and creating an accountability group, a
friend group, a peer group of people who are in the same place as you learning.
And so while it can be great to find a mentor, that's also
a little bit ahead of you.
Having somebody go through that with you is also gonna help is I think the
same thing when I'm training for a race, it's like, I need another person
that I know I'm gonna go meet to go for a run sometimes to make it happen.
And if we're learning things together, we can.
Teach it to each other.
That's a great way to learn.
Right.
You know, kind of echo it back.
Sometimes people are like, oh, you gotta work harder and
you gotta find another job.
And it's like, getting into tech can really change somebody's
life and, you know, in a really quick and meaningful way.
And so I love.
There are all these opportunities now.
And, and if you're looking for ways into this and haven't been
able to find, uh, clear path, I invite you to reach out on Twitter.
I think you mentioned it down below, here.
Meeting other devs and just kind of dipping into the dev Twitter
world a little bit can help.
It can be a lot at times too.
So, you know, dip in, dip out as you need to.
But if you have any questions about how to get started or are not finding things
in your area, definitely feel free to reach out and we can kind of amplify that
and, and find some resources for you.
CJ: Totally.
So I think maybe could we jump into languages, like specific languages
that you might pick and then we can wrap up with our like advice
for getting into programming.
Colin: The age old, question CJ, what language should I pick?
CJ: I think I've seen this like a million times, right?
Like what language should I learn or I wanna get into coding, but there's
so many different frameworks and do I need to learn, react or SELT or.
Should I learn a licker.
Should I learn R it's like, okay, hold on.
pump the brakes a little bit.
What do you actually want to build?
If you go into, a home Depot or Lowe's and you go to the tools section.
You don't just say like, do I want a saw or do I want a hammer or do I want like
this other, like a, a Jack for my car?
It's like, okay, wait a second.
They all have very specific purposes.
Programming languages are pretty similar.
Some of them are gonna work better for certain use cases
and certain applications.
Let's just like, maybe get into it a little bit in terms.
What things that you might build with certain languages?
I think both Colin and I have a lot of experience on the web and we don't
wanna like necessarily discount all these other software engineering routes.
So we'll try to do our best to also highlight what we
know about some languages.
This is not a comprehensive list, but we will definitely tell you what we
think you should learn for the web
Colin: And well, and before we jump into specific ones, I would say,
there's, there's picking a tool for the specific thing you wanna build if
you're learning, but then there's also going to be, I guess, we'll, we'll get
to it as we get to each language, but there, there are going to be some that
are gonna be faster paths to a job.
Learning some of these, some of the less used jobs.
And we talked about this in the stack overflow survey, right?
There's some that are highly paid right now.
There are some that are highly in, in demand.
And so picking the least of in demand programming language
is probably not the best bet.
But at the same time, there's still just tools.
And ultimately you're learning how to code, not how to code PHP or learning
how to code in Ruby, Javas, et cetera.
CJ: Just like learning how to code in general.
I think it's also sort of surprising how after you've learned two languages, it's
really easy to pick up a third language.
So when you're learning your first language, it's kind of uncomfortable
when you're learning the second language, it'll feel confusing and weird, but.
After after you've got like a couple under your belt, it's usually pretty
easy to pick up a third, fourth, fifth.
So it's, it's not uncommon for you to like know or be comfortable
in one programming language and get a job in another language.
And they'll just like your company can expect that.
You'll learn it as you go.
Number one.
uh, I think, yeah, I would, I would say this is probably the number one language.
Should we start from the number one or should we start from the, like
Colin: I didn't realize these were stack ranked, so
CJ: I sort of, I mean, I don't know, they're not necessarily stack
ranked, but I put them in order of
Colin: I think this looks like a pretty good order of getting a job, um, and speed
to which you can build a thing, because I think the challenge with some languages is
that you might be able to just build the back end and then now you gotta go learn
another thing to build the front end.
So starting off with JavaScript, we can try to get best of both worlds
and you're gonna interact with tools.
You already have like browsers that you have for free on your machine.
CJ: Yeah.
So the first one is JavaScript slash type script.
if you don't know anything about programming, you can just
think of type script as like a special version of JavaScript.
That's like a little bit more advanced.
JavaScript is different from Java.
And it's very different from Java.
So Java script is the programming language that runs in your browser.
It is how you can make interactive experiences like Google calendar, how
most modern web applications are built.
And you are not using any application on the web today that does not
have JavaScript, probably, maybe some bank websites or something.
Colin: Craigslist.
CJ: Yeah.
Or if you're like on tour, right.
Like because yeah.
Uh, whatever.
Yeah.
So JavaScript and type script are, great to learn because they
run in the browser, but they also run in a ton of other places.
What is like the weirdest thing that you've written in JavaScript
or like the weirdest place that you've run JavaScript before.
Colin: I have written JavaScript on a robot.
It was called Johnny.
I think it was called Johnny five or something like that.
It was pretty cool.
I think it was like a node package called Johnny five.
CJ: Nice.
So there, yeah, I, I definitely have seen people building things with drones,
with robots, with like little leg.
Stuff.
So it's something that you can use outside of web programming.
It's also something that you can use for building these interactive experiences.
You can also use JavaScript and type script what we'll call like on the
back end, which means on the server.
Which is interacting with the databases or interacting with other services through
APIs, which is kind of like crafting what is ultimately delivered to the browser.
You also will see JavaScript in a bunch of, you know,
these no code, low code tools.
So inside of air table, you can sort of sprinkle in a little bit of JavaScript
to make your air table do custom things.
Or if you want to deploy a Lambda function, or if you're working
on cloud flare workers or.
If you're inside a Google sheets, there's just so many different places
where you can run and use JavaScript.
Colin: I would say the next one, you kind of need to know
if you're gonna use JavaScript.
It it's definitely changed, but so HTML and CSS, it's the least
like any of these other languages, cuz it's for structuring content is
ultimately what you're doing with HTML.
But everything again that you interact with on the web is comprised at the end
of the day of JavaScript, HTML and CSS.
This is one where I don't envy people learning it today versus
like kind of growing up with it.
But the other side of that is you didn't have to do all the things that we had
to do back then to make things work.
So it's a lot nicer and cleaner.
There are, you could choose to go learn it using tailwind.
You could learn how tailwind was made and like go, you know, just.
Raw pure CSS, which I do encourage so that you understand how it works.
But it's really going to be like the foundation, you know, when you're
building the house, it's the foundation and what the, like how many rooms
are there and what, what color is on the walls and all that kind of stuff.
CJ: Totally.
Yeah.
HTML and CSS.
That's gonna be your structure.
I would say, yeah, HTML is the structure of CSS is the styling.
We mentioned tailwind.
Tailwind is a set of like pre-built CSS things that make it a little bit easier
to work with and make it really beautiful.
in every single one of these language is gonna have like libraries that you
can add on or use so that you don't have to write everything from scratch.
Colin: Well, and I would say the other reason is that you don't
also have to be a designer, right?
It's like, you can know what good looks like, but it's really hard
to make things that look good.
CJ: it is super hard.
Yeah.
Colin: a lot of people are like, oh, well, I'm not good at, you know, design.
So I can't be a developer.
And it's like, there's a lot of developers who never touch the front end.
There are a lot of front end developers who wish the peop back end people
don't touch the front end too.
vice versa.
So that's HTML.
So the rest of these are pretty focused on like, they, I guess could be front
end in some world, but, Python and Ruby, these ones are compared a lot there are
startups that do everything in Python.
There are startups that do everything in Ruby, usually with Ruby on
rails or Sinatra, something like that or I think at Stripe, you
guys don't even use rails, right?
You guys are just one big old Ruby app.
I think you're gonna see a lot of boot camps that focus on these two.
There's a lot of boot camps that do JavaScript.
Front end and back end.
Almost all of them are gonna touch HTML and CSS, but then you're
probably gonna find boot camps.
So like we teach Python or we teach Ruby on rails.
So again, this is gonna really, to kind of depend on what kinds
of companies you wanna work at.
If you're not choosy about what kind of companies you work at, and you're
gonna learn the language and then go find the companies that use it.
We both have pretty extensive experience in Ruby and rails.
Somehow I have dodged writing.
Hardly any Python in, in my
CJ: Oh, really?
Okay.
Colin: just has never really happened.
I think I've written like 20 lines of Python in my whole life.
So, that might, that might need to change, but, yeah, anything to add on those two?
CJ: Just that Python is also used a lot in academia for people
who are working on math degrees, they're working on data science.
They're trying to do some machine learning.
There's a ton of utilities built.
Four Python that make doing machine learning stuff easier.
And Python is also one of the languages that you can interview with at Google.
So it is, I don't know, that might be a reason that you might wanna learn it.
But interestingly, none of the languages we've talked about yet are languages
that I learned in a four year CS degree.
So we'll keep going.
uh, yeah.
Colin: So the next one is PHP, which I think is one of the
first web languages that I used.
Um, it's a little bit different in that it lets you run PHP on the back end.
You can run PHP in line of HTML on the front end.
It's kind of like server generated front ends, and WordPress uses
this, so it's very popular.
CJ: Totally.
Yeah, we've got C sharp and F sharp up next.
These are like microsoft.net, languages.
They're commonly used in enterprise.
With windows stuff, Azure, you can make games like Xbox games, in C sharp.
And I think probably also using things like unity and whatever you can also use
both of these languages for building on the web, through.net core and asp.net.
C sharp was a language that I wrote a.
Early in my career.
And then I took a huge break and wrote a bunch of Python in Ruby.
And recently I started playing around with it and it's, it's a great language.
It's really fun.
And it's really powerful.
It used to be much, much more verbose, but now it's getting more and more concise.
We've got several other languages here.
We've got Elixer Java.
These are both gonna be, you know, a little bit less common SQL and
R are two languages that you might hear a lot about in the data space.
Like if you're working with databases directly, you might write a bunch of
SQL R is another language that you might write a bunch of like MATLAB code.
I think I wrote like a tiny bit of this in college, but not a ton.
And then here's a bunch, here's a list of languages.
I would not invest in learning unless it was required for a
job that you're already working.
Fortran Cobal VBA objective C Pearl.
These are all kind of like languages that, were really common like 30 years ago.
And you will still see some applications written in them.
And ultimately like eventually people will be highly paid to maintain these,
but I would not go learn these as your first language by any means.
Colin: What, what do you think about learning?
I know like a lot of TMY classes and things are teaching people how
to learn, how to code using swift.
What are your thoughts there?
CJ: Yeah, so I didn't add swift to the list, but I, I would say if
you're gonna build any like Mac app or iOS app, then I would learn swift.
But that said you can use JavaScript to build Mac apps and iOS apps through
electron and through react native.
So.
Colin: Yeah.
I like swift, but I do think it limits your potential, right?
In terms of like, you're still gonna learn the foundations of programming.
once you learn what a four loop looks like once you understand what,
functions in classes and iteration is, it's really learning, like what does
this language have and not have, and, you know, do they have types or not?
And so it's not learning the language itself.
It's learning the, the individual data structures.
And components of it.
And like with swift, it's like a beautiful language, but if you only
can run it on two different devices, that's just gonna limit the jobs.
Right.
You can go work at apple, you can work at companies that make apple apps.
You can make your own app, things like that.
But, all said, where should people start?
If they come to you and ask, what language should I learn?
CJ: I say learn JavaScript.
And then I am a little bit partial, but I say then learn Ruby and Ruby on rails.
I think like, honestly, I don't actually know CSS very well or like at all.
And so I lean heavily on CSS frameworks.
And so I don't think that one's too, important, HTML is
important, but it's also like, there's not a ton of surface area.
So I think you can.
HTML pretty quickly.
So I would say, start with JavaScript, learn a little bit of HTML, a little bit
of CSS, and then learn Ruby, learn rails.
That's my like preference, but Python is also, I think probably
equally valuable to learn.
Colin: Yeah.
I mean, there are Japanese satellites running Ruby, so it's gotta be
good for something right now.
We, both write Ruby pretty much daily or at least I know I do.
It's like my go-to when I want to.
Build something from scratch.
And like you mentioned with HTML on CSS, if you're gonna be building
your own projects, you're gonna like there, isn't gonna be someone
else to write your HTML on CSS.
So you're gonna have to dabble in it, be familiar with it, learn how
it's loaded and how, how it works.
You don't necessarily need to know every little thing about the
flex box and the box model and all these different kinds of things.
So, that's kind of the language rundown.
So kind of closing thoughts here.
Do you have any like last minute advice for people who are thinking about
getting into programming or maybe they don't think of themselves in this
quote unquote traditional background.
How do they make the move?
How do they make the switch into programming?
CJ: Whatever, like language you decide or whatever path you decide,
stick with it and be persistent.
Whatever you choose, stick with it.
I think there's a couple different things that can help a lot.
One is learn a hello world and then go through some interactive coerce, like
on code academy, try to build something real on a cloud IDE like relet or glitch
where you don't actually have to have an environment set up, start connecting
with other developers on Twitter.
There is a hashtag called a hundred days of code where you post a tweet every
day for a hundred days of what you're learning, that can be really valuable.
And then, one other plug was that exorcism.io is a great website where
you can download, little exercises and programming languages and publish
your solution and get reviews by other experienced programmers that have,
used that language for a long time.
So that's in a nutshell, but I would tell people.
Colin: Yeah.
I like exorcism a lot more than like the leak code or hacker ranks, cuz
those are a little bit more like you're gonna get the same kinds of algorithms
and challenges, but it's just like more of a community than those other ones.
Like.
Those are the tools that you might need to, to grind
through, to get a job interview.
But exorcism is just like a lot of fun and you get to use your own
tools, your own IDE and stuff like that to, to do the, the problems.
One that I would take a look at is called, roadmap.sh, which
I'll put in the show notes.
I will preface this with, do not be overwhelmed by the amount of things
that are on some of these maps, but basically they offer these roadmaps
for different types of developers.
And so I would mostly focus on front end or back end.
I haven't looked at the individual language ones, but what's really cool
is that if you know, you wanna be.
On the back end, it kind of gives you this roadmap of things to learn.
And that doesn't mean you need to be an expert in every single
one of these things, but you can see how things are connected,
like version control and hosting.
We didn't really talk about.
Development environments, like you mentioned with relet and
these web web ones, right?
It's like, you need to become really good at using your own computer, using terminal
and moving around the file system.
So you're gonna kind of like layer and build up this knowledge, over time.
And then you have these like, choose your own adventure moments.
I like, if we think about this as like D and D or a video game, like
you only have so many points that you can put into different skills
and you can't max them all out.
So you're like, okay, I'm gonna lean a little bit more on the
back end and I'm gonna get really familiar with get, but okay.
I don't have any more talent points to go put in.
Like, how am I gonna build a CSS framework from scratch or something like that?
And then just like a game too.
You're gonna have these points where you choose a path.
Doesn't mean you can't go backwards and go down a different path.
It's just, you know, choosing a language is probably gonna
feel like one of those paths.
And then as you start to level up, you get to learn another language.
We can start to think of it as like a, like a role playing game there.
There should just be a role playing game where you learn.
Program.
It's like, you got to level 30 and you get to choose a new language.
CJ: So I think some of the, like some of the stuff that's used at
like the elementary level right now actually does work like that.
Colin: Like code combat and stuff like that.
CJ: Yeah, yeah, yeah, exactly.
Yeah.
So my kids go through some of those programs now.
I'm like, whoa, I wish I had this.
I was a kid.
Colin: Yeah.
You're like, you're building up your, you got an extra point in
HTML and you're a Ruby master.
CJ: Yep.
Colin: Awesome.
We'll put all these links in the show notes.
This is, talking to you in the future, I guess, but we're gonna
be, rolling out episodes looks like at the beginning of August.
So build and learn will officially be live and, welcome to episode three.
where can people find you and all the things that you're doing online?
CJ?
CJ: So I'm, uh, at C J dev on Twitter.
And if you head over to C j.dev, you can find links to articles and
videos and stuff that I'm working on.
So what about you calling.
Colin: Awesome.
Yeah.
And I'll do a quick plug for CJ's own YouTube channel, where you can learn to
code, in very different, languages and D.
Examples, some videos of you learning to code with your kids in
Minecraft and some other places, which can be a lot of fun too.
So for me, you can find me at Colin Lorez on Twitter and basically
all of the internet places.
So definitely feel free to give us a shout.
If you have any questions about this episode, or if you're looking
for any resources on where to get started and we'll see you next time.
CJ: cool.
Bye friends.