Programming Throwdown - Holiday 2020!
Episode Date: January 29, 2021Happy Holidays! In this show we make predictions about 2021 and take questions from YOU, our loyal fans! Show notes: https://www.programmingthrowdown.com/2021/01/episode-107-holiday-episode-2...020.html ★ Support this podcast on Patreon ★
Transcript
Discussion (0)
programming throwdown episode 2020 holiday edition take it away j Jason. Hey, everybody. Happy holidays.
It's been a wild year.
We'll definitely recap a lot of the year.
We'll answer questions that came in from y'all.
And yeah, it's been crazy.
How are you feeling, Patrick?
I feel best described as all those memes of people making things that say,
2020, I survived.
I survived 2020. But then people pointing out correctly that they're still at the time of this recording.
Yeah, still like, you know, 10, 15 days left.
So that might be a bit premature.
Yeah, you never know.
Yeah, the you had the the the virus thing just really exploded in california so so neither
of us are actually in california right now um but uh but but you know talking to people who are there
it's uh it's pretty intense what's going on there yeah i mean my best wishes go out to everyone
affected by this i think it's easy uh you personally, I've been fairly lucky to have avoided any major health consequences in my immediate family or
extended family. But that's not true for a lot of people. And I think it's easy sometimes,
for some people who haven't been affected to, to kind of shortchange how serious this has all been
for people who have been affected by losing jobs, losing family members. I mean, for those people, it's, uh, it's been even worse of a ride.
Yeah. Yeah. That's a really good point. It's been totally wild. Yeah. I think one of the things that,
that is pretty shocking is, um, is, is the, the, they're calling it like the K shaped curve,
but basically it's just completely bifurcated like some people
um you know are actually you know kind of benefiting i mean not on purpose but some
people are just benefiting from from the virus and just the changes that it had on
the whole like social environment and uh and other people are really devastated. And it's kind of a really weird position to situation to see.
So, I mean, yeah, trying to pivot it into technology.
I mean, this has been a, you know, having paid dues to the seriousness of it.
I mean, for a lot of tech companies, e-commerce, digital stuff,
I mean, it's coming into its own.
Like people are figuring out video
conferencing, and a lot of the problems we discussed in a couple episodes, you know,
I think online stores are getting credit as being, you know, equivalent to shopping in in person that,
you know, we're in the holiday season now. And I haven't gone and shopped in in a store for
holiday gifts. I, you know, I've been trending that way. But now, this year, it's a, you know,
serious thing. It's like, why would I not just order everything from a website? That
sounds great. Yeah, it's so true. And, and, uh, yeah, we, I mentioned this on a past episode,
but you know, the big thing for me was clothes. Um, yeah, I've always felt like, oh, I should get,
you know, clothes in person and get the right, you know, fit and things like that.
And, uh, and now it's just, it's just like, yeah, just because of the right you know fit and things like that and uh and now it's just it's
just like yeah just because of necessity you know we started getting them online and then we kind of
realized that like oh actually i'm not really as picky as i thought i was and so yeah i'm really
probably just going to buy clothes online you know uh forever now and so that's a huge change
yeah i mean this this year um you know, from a from a
job stint has been, you know, thankful that I haven't, you know, had any major changes to my
role or position or anything. But you know, being remote since March has been has been completely
crazy. That before, you know, at most, maybe you'd be like a day or two, if you were, you know, had something
or under the weather or whatever. But now, you know, it's just like a full time thing being
being in the house and doing online meetings and doing coding. And I think not everyone has,
you know, reacted in some way for me personally, I've actually, you know, kind of, I guess I,
it's been my jam, like, I don't go up the house for a while you
know i have to be conscious to make sure to continue exercise and stuff um but being able to
to do my work remotely has actually been a pretty cool opportunity for something that
otherwise wouldn't have been afforded yeah i feel exactly the same way i think that that um
i was really worried about the communication part of it,
as you would expect.
I was worried that we basically wouldn't have those times
to sync together as a team.
We'd lose some of that synergy.
But it actually worked out really, really well.
We block certain times for a social time.
And so a lot of it is done over VC. We block certain times for social time.
And so a lot of it is done over VC.
I think the biggest challenge is people interrupting each other because of that delay.
But we're starting to find good ways to solve that as well.
And yeah, I think the freedom of it has been awesome.
And being able to do your laundry while you work
and a lot of the
things you would imagine are really useful they actually are i mean it saves so much time in your
day i think also um communication has been i don't like maybe that word is overused but more
conscientious like i think people or at least i do personally try to take more care because you
can't do the in-, you know, facial expression
stuff as well over video, I feel so like when I do reviews or emails, or even just, you know,
instant messaging people that I, you know, take care to make sure to say more of what I'm thinking
or how I'm dealing or how I'm planning something or approaching things. And in some ways, I think
that's helped me organize my thought patterns a little bit better
by having to be more specific rather than just, hey, so and so come over here, or let's go grab
a room or let's go get, you know, a snack or something, right? Like trying to be more thoughtful
about, hey, I'm going to engage this person with that topic. And, you know, bring in this other,
you know what I mean? Like, I think those things have been actually slightly better because you're
more deliberate about including people than just whoever happens to be around
when you have a thought.
Yeah, totally agree. And, and the other thing is, you know,
anything now is kind of,
you're always kind of asking someone's permission because it's a VC.
So it's just, it's a lot more deliberate. And so, um,
it kind of gives people the opportunity
to kind of schedule when they want to have those chats.
Whereas when it's in person,
if someone walks up to you and says,
hey, do you have a minute?
You're just really compelled to say yes,
even if you really don't have a minute.
But if someone messages you,
there's sort of this plausible deniability,
like maybe the person wasn't at their phone or whatever.
And so, as you said,
it allows people time to concentrate before a discussion.
Yeah, I feel that initially there was this like, oh, no, how am I going to get my questions answered?
But I think it turns out actually like waiting around for an answer.
Sometimes you fix it yourself or sometimes you do something else.
And I think it turns out you just don't need as fast of answers as we were maybe used to getting in the office. Yep. Yeah, exactly. Cool. Yeah, I think or do you think you're going
to stay remote for the foreseeable future? We'll see. I mean, I think it's gonna vary as companies
figure out their plans and work. I think for sure. I think a lot of, you know, we're both in,
in programming, but, and in companies which are technology focused. So I think maybe our view is
a little skewed. I think a lot of programmers work in industries which aren't completely
only a tech company, right? So there's a lot of programming jobs for, uh, you know, whatever you
want to think like refrigerator manufacturers or car manufacturers or, you know, whatever you want to think like refrigerator manufacturers or car manufacturers
or, you know, things which are more mixed, or even people making furniture, I guess, right,
need various kinds of programming. So I think a lot of, you know, jobs are going to have adopted
technology to deal with this that they wouldn't have otherwise. And I'm curious to see the impact
that's going to have on the like, who stays remote and who stays remote and who, you know, goes back to the office or needs to be in the office because real estate is pretty expensive in a lot of places in the Bay Area of San Francisco and California, that I think what
you're seeing is that a lot of them are going to be away from the office for at least, you know,
14, 16, 18 months before they're going to sort of staff back up. And that's a long time to have
people be remote and learn how to deal with that and then just suddenly bring them all back to the office yeah actually um um i was thinking about this the liability dimension here
is like really really interesting um you know if you uh if you ask people to come back well there's
there's so many different angles this i mean one is you know can employers force people to be vaccinated to come to work so that's a whole thing that's
we're going to be careful here keep going yeah yeah yeah no i'm not going to get into the ethical
issues there but but but but the but then there's like okay assuming that doesn't happen or assuming
they've taken employer for which you know they don't have that mandate well then if anybody um uh you know if they set a line and say okay it's you know i don't know
april and everyone has to come back and even one person um you know gets gets gets extremely sick
um because they were kind of you know mandated to come back. That's a real, real problem.
You know, and even if like legally, you know, there's, they're in the right, I think it,
it, in the court of popular opinion, I mean, it's going to become a real issue.
And so to your point, I think what's going to happen is, I think that, that for people
who are asked to go remote, you know, I think Mike, I think it was Twitter who are asked to go remote,
I think it was Twitter who initially did this.
They said anyone who is asked to go remote can come back basically at will, indefinitely.
And I think that's going to become the policy.
I wouldn't be surprised if all of these companies say,
look, if you are interviewing now,
we're going to ask you to come in. We get to set the rules, but for the people who we asked to go
remote, um, you know, we're not going to mandate for them to come back because otherwise I think
it, it, it opens up this whole can of worms. I think this is something we'll definitely be
revisiting on this podcast. Yeah. So actually, yeah, well, that's my prediction. So, you know,
we always do our predictions i'll
just say mine right away my prediction for 2021 is that and you know obviously it's not everyone
but but the big companies um you know the fang um and and and the other sort of like the big
players oracle and those cisco um that they're not going to have like a hard mandate to come back there will be
strong encouragement but that there won't be any mandate that's my prediction are we doing
predictions now i'll do mine yeah go for it what's your prediction my prediction is harkening back to
a one i made a long time ago but i'll make it again i think this year you're going to hear a
ton of news about um basically the new space race i think there's going to be this is not really a
program i think sorry but i think that's great i think blue origin is very close you've got um
the boeing activities with what is that i guess orion spacex the man i was so stoked i watched
the starship launch from spacex it was like so close and i was crazy watched it with my kids
and i was just thinking like i think one day and I took a video of them watching the video.
I don't know.
Maybe that's weird.
But yeah, I just like I think one day it'll be like look back and be like, this is the start of when, you know, things started to change.
And even just looking, you know, I'm not like making picks about which company will win
or lose because I think there's only been a few years.
So I think in the scale of these kinds of things, a decade even isn't
that long of a time. And so I think, you know, we're going to see this as like one of the
areas where it's an inflection point. And the amount of people and things and objects and technology going to space in a given year is going to start to be is going to become exponential,
you start to see the statistics, like, if some of these quotas keep ramping up you're going to have more weight launched into
space in a year than all of previous mankind well it's a short thing i guess but you know
spacex is on track i think there's something like they are i think i want to say like in the first
half of the year almost booked out like one launch one paid launch a like in the first half of the year, almost booked out like one launch,
one paid launch a week in the first half of 2021 or something.
So I was going to ask you,
what's the economic value. It's,
it's tourists who want to do space,
like ground trips,
space travel.
I think all of it.
Right.
So you see the stuff like the Starling satellite internet has,
it could be game changing,
right?
If you can live wherever,
and especially with this
coupled with the coronavirus stuff the covid stuff right if you could suddenly be in a cabin
and have high speed low latency internet via satellite for a reasonable price
think of like what that changes to the dynamics of like where people want to live and work
um how is that connected to the to the space right like Can't they already do that? I know nothing about that.
So I think it's, you know, if you launch a satellite and it's, you know, it's like per pound.
So if you can drop the price per pound by an order of magnitude, you can afford to put up a lot more satellites.
And you need a dense coverage of satellites and then also because you spent less making them and getting them into
space if they only last you know five six seven years which is true for objects in very low earth
orbit then you can that's that's an economically feasible thing to do if you had to pay 10 times
the amount you need your satellite to either deliver more economic value or be up for longer
and so that just eliminates parts of the
design space so spacex to send up someone else's satellite in half the capacity and then 50 of
their starlink satellites and the other half of the capacity of the you know way they can basically
for a very cheap amount get all those satellites up um and then they don't need them to stay up that long before they are a net positive return on
their capital oh i see but it's not just six and starlink i mean there are other companies waiting
in the wings to do the same thing so as soon as there's cheap reliable frequent you know flights
to space it becomes kind of like commercial business travel right that like suddenly there
were people at my job,
and especially from my previous job, who would just fly two, three times a week to various places
rather than getting on a phone and calling someone. And that was because it was considerably
cheap to be able to do that. And if space becomes the same thing, I don't think it'll become like
cost of a flight, but an airplane flight, but if it becomes cheap like that, all of a flight but um an airplane flight but if it becomes cheap like that all of a sudden what is reasonable to put in space including humans for entertainment value
becomes way more open and possible that makes sense so like the the russian space station right
things the iss right um so that is in orbit around the earth is that does that need a lot of maintenance i mean i
have to i'm totally you know a dummy on this yeah we completely have that you have is that could you
have like clubs in space where people go spend like two days like or like maybe not a club like
a resort resort in space i mean i think so right so the early ones like Virgin Galactic, and I think to some extent, the Blue Origin current rocket would be, you know, giving people four or five, six minutes of weightlessness, you won't actually reach orbit. So they're a little bit of a different thing. And that's what we'll see sort of first from them. But then once you get more powerful things like the starship from SpaceX, then yeah, I mean, I think you could start to have um places in space for people
to go to and and sort of hang out for a day or a week you know like a very expensive resort I guess
although for a while it's still going to be very uncomfortable because getting large objects up is
still going to be pretty hard um you can get heavy objects up but getting really big objects up is oh
yeah that makes sense it's still going to be hard. And so I think you will start to see some of that.
That might be a little further out.
But I think first just being able to get satellites up for cheaper,
I think is going to be very interesting.
And then longer term, you start to, like you say,
start to do more colonization of orbit or the moon or even Mars,
but also about like asteroid mining and stuff
right like a single selectively picked asteroid has like more precious metals than is like on the
entire earth and so you can completely change things which are too expensive now like gold
if you find one of these asteroids people are supposing you might be able to like
have more gold like 10 times more gold than exists on the whole planet right now.
So that changes what you could use gold for because suddenly it's not an
expensive thing.
Wow.
I wonder if you,
if you were going to mine an asteroid and it's,
it's not that far away,
I wonder if you would send chunks of it into the earth,
you know,
versus just having to carry it all back.
I think there's
lots of ideas here i think a lot of it will depend on what and how safely and easily and how big of
things you can send into orbit or not wow that's wild okay so that's a pretty bold prediction so
you're saying so the prediction is basically that there are space race there's basically
going to be a lot more competition in the space arena and a lot
more like to make a specific one i'd say you're going to see uh the first regularly scheduled uh
tourist launches by the end of 2021 so i think yeah that sounds awesome i don't know i should
look at their schedules first they probably published their schedules so i could probably cheat yeah you
look it's like oh well there goes that bet um yeah my my uh prediction last year for this year was
that um i believe it was that i'll have to double check but i think it was that education or maybe
that was we had a long-term and a short-term bet um i think the long-term bet for me was that
education was
going to change where instead of getting scholarship instead of instead of taking out
loans you would get sponsored um and so basically the loads basically the loads would become
privatized that was the prediction some of that i haven't seen it become regular yet but i've seen
people talking a lot about it yeah i think the the inflection point there the tipping point there is is the um they is the government bailout so if the government bails out the student debt
well then then all the private investors who would be investing in students will will just
punch out because um because the government will just give the we'll just bail out everyone's debt
they're not going to be selective or like economic about it um but if they don just bail out everyone's debt. They're not going to be selective or economic about it.
But if they don't bail out the student debt,
then yeah, I think that will accelerate.
Cool.
Do you remember your question from last year?
I was trying to look because I was wondering the same thing
and I could not find it.
I have no idea what mine was.
It was probably wrong or too early
we'll see we'll see we'll jump into questions so um we could just go straight down the line here
um so so senor laser uh on on discord asks uh have we done unit testing in college
um i could just say a very quick no.
I mean, I wish.
It probably would have helped my software development skills accelerate faster.
But unit testing was something I learned later.
What about you?
The same.
I will say that I think unit testing, to be honest,
writing a unit test isn't that... This sounds crazy. The idea of writing a unit test or whatever isn't that big a deal.
The biggest thing is getting people to agree to commit to architecting your software in a way that it can be meaningfully unit tested.
Yeah, that's a good point.
I think that's a topic that might be, for at least the kind of classes and stuff I had in college,
I don't think even if someone had tried to make the point, it would have stuck.
Yeah, I totally agree. Yeah, now that you mentioned it, I think,
you know, I did take a software architecture class in college, and I'm pretty sure they
covered this. But as you said, like without any context, without a bigger system, it just sounds,
it just doesn't make a lot of sense. It's like, oh, I did this homework assignment.
It's like a one file program with two functions.
Why would I unit test this, right?
And so it only makes sense when you start introducing things like real time clocks and
very large, complicated, you know, architectures that then you realize like how important it
is and also how hard it is.
It is hard.
And I think as a junior person coming in on a team, sometimes, even if school taught you the importance of it, and kind of how to do it, you wouldn't have the right political capital and angling and experience to understand the right application of it, like the right amount. I'm not a big you know, you don't have infinite money to spend on it.
So you should focus your things.
Now, if you have infinite money, sure.
But, or infinite time, I should say, but time is money.
Oh, another topic.
For unit testing, I think it's one of those things you need to be very specific in how and what you unit test.
If you're not going to be able to do full testing, which most of the time, it's not the right answer to do full testing. And I think that's something that's learned skill over time
and specific to an organization and a project, what layer in the stack you are, how you relate
to the teams around you, all of that kind of stuff. Yep, totally agree. I second that 100%.
All right, I'll ask the next question. So this one's from Canon, and it's,
how do you know which path of computer science to go down?
Data scientists, computer engineering, yeah, fill in the blank here.
So I guess the trend is to answer your own question first. So I ask this one.
I'll say that you don't know.
I don't think there's a knowing, or at least in my opinion.
I think you try to find the one
that interests you the most at the time while being open to the idea that you might pick wrong.
So some of it is depending on your school schedule availability, how it meshes with
classes you're interested in or minors that you need to do. And so I think don't get too hung up on it. As someone
who does hiring, I don't care too much, to be honest. And I can't say that's true for everyone.
But for me, I kind of don't care. Like, I'm just looking to see if you have a vaguely applicable,
if it says electrical engineer, computer science, computer architect, i'm basically treating all those as the same um especially for undergraduate you know first job um kind of hires and so it it matters that
you're passionate and that you've got enough exposure to projects to be able to intelligently
talk about the uh sort of intricacies of programming and debugging and that kind of thing
um if you're going to continue,
I'll let Jason talk about, you know, past undergraduate, I think it might matter more.
But I think early on, I think it matters that you do something that you find really interesting.
And it has classes that you think you're going to be passionate and apply yourself to,
so that you're going to be involved in the projects and get good grades and that kind of thing.
And then I think, after you join, you still, you know,
your first job, you still shouldn't settle down, you should try a few different things to see what
you really like before settling down on one thing, because that'll also give you breadth
and confidence and what you chose. So what do you think, Jason?
Yeah, that makes a ton of sense. I mean, just some more, like uh some just to riff on that i think um
um yeah i remember being in in you know i guess senior year of high school and and really kind
of stressing about this choice and there was computer scientists there was computer engineer
there was electrical engineer and um and yeah patrick's exactly right. I mean, don't stress too much about this.
I think that your career is going to take a really, really long time.
And think about all the things that you've learned.
Let's say you're a senior in high school.
Think about everything you've learned in those four years.
You started with maybe you're in Algebra 1 or something in freshman year or pre-algebra or whatever it is.
And then now you've taken, you know, maybe you've taken pre-calc, you know, AP calc.
And so you've learned all that stuff in four years.
And that's just four years, right?
You're probably going to be working for 40 years, right?
That's an order of magnitude more. And, and so, you know, I mean, you know, I would look at the courses and just say, okay, which of these sort of curriculum, which is curricula do I prefer?
And, and kind of go from there.
But yeah, I mean, you know, a good employer will, will, you know, treat a lot of these as, as sort of equivalent. Um, yeah, actually. So you also asked
about, yeah, the, once you get to the higher level, then, then you really need to have something,
you know, very specific you're passionate about. So, um, so in my case, you know, I really liked,
um, um, you know, this idea of like a superhuman, you know, board game player.
And so that was something that was, was really appealing to me. And, um, you know, there was
chess, right. Where there was deep blue at chess, but the deep blue was sort of a search thing.
It didn't really have a good representation of chess. It could just, you know, search really
well. Um, you know know and by a good representation
i mean something where you can kind of tessellate like you could take one experience and translate
it to a slightly different experience right so deep blue didn't really do a whole lot of that
and if it did it was it was human beings going in and writing rules um and so that that was just
super interesting to me and i was willing to spend a lot of years to
try and make progress there um so i think you know it's it's it's kind of difficult to do a
something like a phd if you don't have a specific goal um of course you have time to to find that
goal but um but ideally you you you know say you do a bachelor's, you do a master's,
hopefully by the end of the master's, you have some really interesting question that nobody
has ever answered before, or that hasn't been, you know, that that has dimensions to it that
haven't been explored. You know, we know, there's always been sort of people who get into the PhD
program just because they really enjoy school.
But then it's very hard to finish without having that kind of specific answer.
So that's where I think it can kind of pivot to where you kind of have to have some focus.
But yeah, for undergrad and even for master's, yeah, I think looking at the curriculum and don't worry about getting it wrong.
You can switch or you could even just finish out the degree and get a job where you're going to be surrounded by people with the other
degree and it won't be an issue um okay so so chef asks which programming language should i pick to
land a programming job um yeah i mean i'm gonna have a a very specific take on this patrick will probably this is one
where we'll probably have a different take um but you know my take on it is is um
i think that you know again if you so landing the job is is one thing but then you know you
have to work that job right and ideally you have to work that job let's say a minimum of two and a half years so that's what six thousand hours right and it's very hard to do six
thousand hours of something that you hate right um so so you really gotta look at what are the
kind of things you want to build um and then say okay the people who are building these things what are they using so for
example if you wanted to make a video game well like a lot of people are using unity it seems
seems like a really powerful engine for that right and so a lot of those people are using c sharp
right and so that can kind of help guide your decision but it's coming at it from kind of a
different angle what's uh what's your take on that so i guess
just to wrap it up i think yeah try to find you know what you want to build and then the language
will usually kind of fall out from there that's my take on it i mean i think so i guess uh there's
two things there's like uh generally speaking and then like in my current personal experience. So I will say that
I guess Jason's saying is kind
of true. If you have your eye
on a certain kind of job, you might
want to tailor your programming language to
that kind of job.
So if you want to work in
machine learning,
then, I mean, Jason can probably speak to that,
I probably wouldn't recommend learning low
level C and C++. Probably not a great fit. If you want to do embedded programming, or even video
game programming, for the most part, I would probably not recommend something like Python,
I'd probably recommend, you know, C++, or even I guess, if you're going to use Unity, you have
more flexible, like C sharp or something. It's not that you can't do them in other ones,
but it's not about what you can or can't do for a project.
It's making yourself have the best chance of getting hired.
You may be a really good fit or capable of doing a job
and not land that job
because either there was somebody else already lined up,
the job falls through.
I don't really see... H hiring isn't a perfect thing. It doesn't. The perfect people don't get the job every time. Sometimes the interviewer is having a bad day. So what you're trying to do is increase your, you know, sort of chances of getting getting a job. And for that, and like, if you're just saying, look, I want to make sure I get a job,
you know, I think there are a few languages
you want to choose from, and it varies by field.
But if you're going to do web type programming,
which isn't Jason and my specialty,
then for sure you want to know
at least some amount of JavaScript, right?
You're going to need to know that.
You're going to know how to build web pages.
If you want to do, you know, applications programming on, you know, computers, you're
probably going to want to do either like C++, or maybe Java, or maybe something like C sharp,
or newer, if you want to do like, you know, Android or iOS programming, something that's
more tailored to those. So, you know, something like Swift on iOS,
or, you know, I don't even Android, I guess, Kotlin, Kotlin is it I don't know how to say it,
but as I was gonna say, which is, you know, kind of related to Java. So I think those are the kind
of things but more importantly, you'd want to be building the more specific you are and what job
you want, you'd want to have projects where you're actually building those things. And those will
some to dictate your language. So if you're going to be trying to get a job in Android
development, you're going to have one, you're going to want to have built Android apps. And so
I think, you know, languages like Python, Java, C++, C sharp, you know, the languages are sort of,
you know, JavaScript, most interviewers are going to be
able to read those languages. And so you're not going to have a problem, unless you have a very
highly specific kind of interview. And, you know, without getting off into it completely, I mean,
there's different styles of interviewing that take place at different companies.
A lot of the tech companies currently do a more data structure algorithm heavy interview.
And so as long as if you're programming in a language that the interviewer knows or can read, then you're sort of good to go.
And they're looking for more skills.
But that's not always true.
If you're looking to be productive day one at a smaller shop or a startup or something, then your programming language
choice matters to be more closely matched to what that shop does, you know, especially if the shop
is doing something different than sort of the beaten path. So if there's some place you really
want a job at that does Haskell, you're gonna have to know how to do Haskell. But I would say
that's not the commonplace. Most of the big tech companies, I'll say,
any major language is probably acceptable.
And if not, you know, this is hard to say.
So if your goal is to just get a job,
I guess I would say probably JavaScript, Python, Java, C++.
Yeah, I totally agree.
If you're wanting to be passionate and build projects and get hired that way,
then I would say this question is probably missing the boat there.
It's not about what programming language you learn,
but about what you've built.
Yeah, totally makes sense.
I think, yeah, just bootstrapping off that,
if someone interviews you know,
interviews for like a machine learning engineer role
and they've never coded in Python,
that could be kind of a red flag.
You know, it's like, it's possible,
but it just seems kind of odd, right?
So even if, you know, Unity will let you write code
in JavaScript or something,
knowing sort of the core language that's the most common
for whatever kind of field you're wanting to get into is probably important.
So maybe the answer is really just to do both, right?
I mean, for the type of job you want,
learn the most common language for that job.
So if it's web, learn JavaScript, right?
But then at the same time, try to also build things.
And those things that you want to build
might be easier to build in C++.
So maybe you have to learn two languages.
And that kind of segues nice into our next question from Matt,
which is, what is the fastest way to learn a
new programming language? I think of, you know, my view of it is to just find something to build
in that language. You know, I think that, so, well, actually, there's sort of a meta question
here, which is like, what does it mean to know a language um or you
know and and i think the only way you really know if you've learned a language is that you can build
something with it um i think there's a lot of um sort of meta you know it's beyond just writing
the syntax and all that but there's kind of um different languages have sort of a different
let's say like feel to them or like if you're writing you know javascript and this has kind of changed nowadays because there's the weight async
pattern in in javascript 6 but um you know traditionally javascript would just have a lot
of callbacks because like every function you would pass in another function maybe even two
functions the second one would would fire if if something failed
and so you have to structure your code a certain way you know for example that failure callback
you might have one failure function globally and you're just passing that to every function you
call and and um and so sort of structuring your code in a way to handle like all of those
callbacks um you know that goes
beyond just being able to have code that compiles right and so you won't know that if you um just
learn the language through like a tutorial that teaches you the syntax and so i guess the fastest
way to learn the language is that is also the way to know you've learned it which is because you've
built things right yeah i i think you have a really good point there i i you always call that i don't language is also the way to know you've learned it, which is to just build things, right?
Yeah, I think you have a really good point there. I always call that, I don't know if it's completely correct, writing idiomatic code. So you'll hear it referred to in Python as
writing Pythonic code, right? Or maybe that's the one that has the best,
or at least the one I know name for it. But you know, as a C++ programmer, I can always tell
when someone comes from Java or from
C background, and they've learned the syntax, and then they think they know and then it's like,
well, what you're writing is technically correct and does work, which is sort of what one of Jason's
bars was. But for me, as a person with more years, I would say that, you know, this isn't code that
it would have, I would point out various reasons why it's not the way we do it. But to be honest, the same is true for people who study C++ in school,
and then they come to the job, for instance, and they use like exceptions, they throw exceptions.
And in C++, we have a, you know, variety of lessons learned as to why we've chosen not to
throw exceptions normally in our code. And that's something that until we show them, they wouldn't know about those reasons. And maybe they agree or disagree. But all that
subtlety, right, is something that I got to ask, what do you do if you don't throw exceptions?
So normally, you require functions, well, depends. But either you return some sort of error code,
and you have error handling, or you have a kind of separate
separate mechanism for doing it but basically for code that can fail you uh you can have an
optional return type you can have a return type that's an error code yeah um it depends on other
choices you've made in the system um but yeah so i mean i think part of learning the language as
jason said is like and we talk
about this and this is true for every language i think we we all ask people who we interview you
know hey like how would you rate yourself at c++ programming and they'll say oh you know i'm an
eight or nine out of ten and we're just like uh what um and maybe it's more of a c++ joke i guess
but c++ has been around for i don't know how many decades now, a lot.
And there's many...
Yeah, since the 70s, I think.
Yeah, so there's many, many corners to the language.
And, you know, we say people who, you know, are writing the standard library and on the
panels for the new proposals for next year's thing, those people probably rate themselves
as seven or eight in the language.
Most of us probably rate ourselves as like four or five. And so it's sort of one of these joking things, but it somewhat holds true, which is the higher you rate yourself, the most
likely that you just don't know what you're doing yet. And so most people probably start off rating
themselves a one, two, three, four, five, six, seven, eight, two.
And so you get somewhere where you start learning that you have more to learn than you thought you did.
And you become more self-aware.
And so part of learning a language, as Jason points out,
is like, look, I can pick almost any language.
I won't say any because we've been doing this show a long time.
There's a lot of weird languages.
But pretty much any language, you can pick up,
Google a few things, go on to Stack Overflow
and bang out, you know, a simple script or, you know, a hello world example, or even something
more complicated.
But that's the between that and writing maintainable, you know, 10, 20, 100,000 line projects,
right?
The gap there is gigantic.
And I don't think there's a fast way to get to the writing maintainable. Many
people working on a code base code that I don't think there's
a shortcut there. If you're just trying to knock out something
for an interview, or for a simple project, or just to get
it done, then the fastest way is to be really, really good at one
or two languages, so that you know many many
concepts in those languages uh and then just figure out why what's the contrast between the
language you know and the language you're trying to learn yeah that's it's all really good advice
i think um um yeah so so then yeah kind of what you said, if you, if it's going to
take a lot of time to learn kind of the right patterns, then yeah, learning a language maybe
isn't like picking a certain language maybe is less important because even if you pick a language
for your first job, unless you're going to dedicate a bunch of years to it without working,
which would be, which, which probably isn't true't true then then whatever language you pick you you won't have all of that experience anyways so
so it's it's maybe more useful to to try and build some cool projects i would also say another way of
thinking about is like learning a paradigm and maybe that's too subtle but like if you wanted
to learn functional programming right
like there's a way to do that in various languages or at least kinds of approaches to a great point
right learning how to do scripting right if you really want to learn about banging out
shell script kind of stuff like c++ is not the right language for that but that's a useful paradigm
to know um if you're trying to learn prototyping, GUI,
I mean, maybe even paradigm is not the right word. But like learning those kinds of things, there are tools better and worse suited to it. And how close your preferred tool set is,
dictates how fast you'll be able to do it. But learning new paradigms, once you learn a paradigm
one way, it's often pretty easy to switch between languages within the same kind of thing you're programming yeah another
angle on this is you know if you if let's say you set out to learn a language like javascript or c++
or something if you can find a framework and this again assumes that you're you already know kind of
you have a project in mind you want to build if you could find a framework that is very opinionated that actually is usually really good um so for example let's say you want
to learn um let's say you want to learn c++ and you say i'm going to use the google style guide
right so the google style guide bans pound defines, right? And so, you know, in the beginning,
it might seem kind of frustrating
because you might have some idea of a way
to use pound defines to like auto generate,
you know, 10,000 functions.
And then now you can't do that.
And so you have to have some way
to write an abstraction layer
so you could get it done in two functions, right?
Well, you probably
shouldn't have created 10 000 functions right and so and so having that restriction you know
the restrictions are trying to restrict you from doing things that that that historically have been
bad and so um and so yeah finding sort of these really opinionated frameworks you know you might
feel like oh it's kind of restricting me. And
every time I try and do something, there's some error or some reason I can't do it. But I think
when you're done, and you kind of can do what you want within those restrictions, you're going to
find that you're writing kind of more idiomatic code. So the next question comes from gun art is html a programming language no okay next question no
um i don't know much about this but yeah go ahead no i mean i i guess it's the hint is in the name
it's a markup language um i mean i think you can put stuff in an html file that is programming
right you can embed javascript in an html file but i don't don't think HTML, even I won't look,
but I'm sure if I look it up, I know CSS is Turing complete.
I don't think HTML is, but it might be.
But I don't think the normal way people sanely use HTML
is more to describe data, right?
So this will just make the podcast drag out.
But this is a way of modeling data and describing data and annotating data, right?
A markup language, you're marking up the data.
And then you manipulate it with other tools like, you know, CSS, or which even I won't
go there, but or JavaScript or this kind of thing, right?
So things like JSON, XML, these are closer in my mind to HTML. And those are all
file formats or data descriptors. And they're very, very useful. They're very important tools.
But I would say those are closer than them to being an actual programming language.
Yeah, it totally makes sense. I mean, you know, in absence of JavaScript, I don't think there's any way you can be Turing complete with HTML. So and to Patrick's point, I mean, yeah, looking at it, you know, from a practical perspective, you know, HTML, you know, Markdown, Google Docs, right? I mean, these aren't programming languages. I mean, even if you could show that they're Turing complete, that's not sort of what they're designed for. But I will say that, and maybe I don't know why you're asking this question, or if you're just
trying to be funny, or if you're trying to learn something, or trying to understand if it counts to
say, you know, HTML, therefore, you know, a programming language or add to your notching
up a belt. But I mean, I think understanding good data design and data modeling and data structures is very very important um and
so whether or not it's a programming language html is a very important thing um and the paradigm
that it represents is also a very important part of uh computer science yeah totally agree totally
we actually have a couple of questions that just showed up on the
discord oh um if you're listening live yeah go ahead on the questions channel and throw your
question on there and so we'll we'll go through them and then and then we can uh call it a wrap
um so so leonhard asks um how relevant is knowledge in a particular business field
versus knowledge of the tech stack so so
for an example you know how important is it to know uh let's say um web programming versus knowing
you know uh next.js or something like that or react or something um yeah it's a good question um i feel like the tech stack is probably less important i mean
they're kind of intertwined right because if you've learned a tech stack if you've learned
for example next.js then you know something about web programming right um but in other words i wouldn't go out of your way
to learn you know next.js and uh i think it's called ember.js and angular and react and you
know netlify and and all these things um you know i think that that i i would rather people spend
their time learning,
going into another business field,
if that is something they wanted to expand in.
Because I feel like once you know one,
then you could kind of just contrast and compare to take yourself to the next one.
What's your take, Patrick?
This is very, I guess it depends.
I mean, a particular business field
it depends on the business field i guess right so if if there aren't that many particulars in
that business field that make it different than every other one or they're not impactful to the
tech stack or the way you build software then i guess it doesn't matter but in some it's probably
super relevant.
Like if you're going to build safety critical code, right?
Like there's a whole,
it influences literally every part of building software.
And so it does matter, but it depends.
And so I think you got to know,
you got to have something in mind
before you can get a good answer here.
But as a young person or new person, let's say, I would say that it probably doesn't the first thing to worry about.
Most places are willing to teach if they're willing to hire an inexperienced person.
If you're looking for a more senior experienced role, then it probably matters more.
And you sort of need
to break into that industry right um but yeah for most people i think there's probably a medium
amount of business particulars but that the job is willing to teach them to you
yeah that makes sense um so rubik's shoe which is awesome that's a great name it's one of those names that you don't
understand it until you phonetically I got it now yes yeah Rubik's shoe asks basically
you know should you take a let's say you have a nine-to-five job maybe it's not in computer science, right? Should you take an unpaid internship, you know, in software engineering to try to break into the field?
And then sort of the follow-up question is, you know, do you have to sort of quit the day job or could you do both?
Why don't you go, Patrick, since I've read two in a row.
This is tough.
I mean, this, I think every, it's a, you can hear stories saying either way, you know,
you can get whatever confirmation bias you want.
So you can find people that say, you gotta, you gotta quit and go all in.
And you hear other people say, you gotta never put all your eggs in one basket.
And I can probably find you, however many you say is the bar, I can probably find you
that many examples of either
um and so this is is really hard to know it's it's depending on the market conditions depending
on the industry you're trying to go into depending on what your current job is i think this is one
of those is very much a case by case i would say there's no one right way to do it um yeah i agree with that i i guess okay one thing i want to add is is just
be careful for scams um um you know i think that like uh you know a lot of internships are paid
not every internship right um if the internship isn't isn't paid then or if it's let's say
significantly less than whatever you're making
now, then you have to say, like, what value am I going to really, you know, get out of it, right?
So, for example, you know, there might not be, if the internship isn't, let's say, part of some
community where, you know, you can get a really good reference and things like that then there might not be that much difference between um an unpaid internship and you just
spending some time on the side maybe some nights and weekends you know picking up new skills right
on the flip side uh there are sort of programs where not only are they unpaid there are programs
where you have to pay like these boot camp programs, but there you have to really look at their track record of
placing people into jobs, right? And so it might be worth, you know, you actually paying to enroll
in something if the, you know, if the expected value of that is high enough, right?
And you can look at past graduates
and things like that to decide on that.
The question of can you do both at the same time?
I think the biggest thing is just to be transparent.
Now, if you're a nine to five job,
like if you're just going to work around that,
it probably doesn't matter that much
uh but but really with the internship you know you want to be transparent and say look like i
have this other job um you know whichever one you're basically joining second you just want
to be trans like and this is true in general if ever you're going to join a job but you know keep
an existing job you just want to be open about that um and and so whether you should have
two jobs or not uh it really just depends on the circumstances but but the key thing is is just
just being open and honest with all the parties involved all right um rubix who also asked about
uh music whether they're what we like is there some particular artist is there something we've
liked all the way from being a youth to an adult?
Uh,
something new we've liked.
Uh,
I'll go first here.
Um,
you know,
I listened to music fairly often,
but I don't feel like I'm a music guy compared to other people.
I don't really get that much into bands.
I listened to all sorts of things.
I mean,
when I program,
I mostly listened to electronic music of various sorts.
Um,
and then,
but like when I'm driving in the car
it's a big mix the other day i was really into like picking bluegrass music i don't know why
but i was listening to a lot of like banjos and you know like really really old um stuff i you
know i it kind of doesn't matter i'm normally upbeat music person i don't really like sort of
like really slow or dark music so that's kind of my only theme but I'm normally upbeat music person. I don't really like sort of like really slow or dark music.
So that's kind of my only theme, but no,
there's not been one artist I've listened to, you know,
for sort of years and years. And, you know, I would, you know,
pay lots of money to go to their concert.
That's just not my relationship to music.
Yeah. My answer is similar. I would say that I'm, I'm,
it sounds like I'm a lot more into music. I mean, I do like,
I go to a bunch of concerts. Um, there, there's some bands I really enjoy, but it's, it's nothing specific either. Um, um,
I, I generally don't listen to music when I'm coding or working, but, um, uh, but I do listen
to a bunch of music in the car and, or I'll have music playing, you know, like, uh, when we're just
hanging out with the kids and things like that. Um, it's all over the place i mean everything from you know country to heavy metal
to i don't know rap r&b everything in between and uh i generally you know i like i like same
thing as patrick said you know music that are music that is uh more high tempo um you know
that's sort of like high energy and get people kind of excited um you know i like
music that's some of it is just because it's funny the lyrics are funny like uh um you know like um
what is the the people who do the i'm on a boat lonely island or like you know these these sort
of like goof goofy bands like tom mcdonald uh you, these, these sort of, uh, Adam, Adam Sandler back in the day. So, so yeah, it's kind of a mix of, you know, comedy routines that are musical.
Um, and then pretty much every genre across the board. Um, and, but yeah, when I'm working at,
I generally don't like to listen to, I generally don't listen to music unless it's it's um a noisy place and i have headphones
on um pyro asks if uh we could do a virtual meetup i think that's a decent idea we might
try to to see that i think it's gonna be busy for the next few weeks for us but uh um yeah i think
virtual meetup might be uh that seems to be very 2020 so it'll probably first half of 2021 be the
same kind of thing so um i don't
have anything specific planned out but that's that's not a bad idea yeah i mean you know our
christmas episodes are kind of that already uh we just kind of opened the floor um you're here
we're here yeah i mean you know i wonder you know and even for the christmas for the holiday episode
i was wondering like um you know is there a way to sort of,
you know, I know it's zoom people have done like breakout sessions and basically get everyone
talking to each other and maybe what we'll do actually, I don't know if this is going to end
terribly or not, but we could just open the whole, the whole room up at the end after we're done
recording and just let everyone talk to each other and i can spend a little bit of time
here uh i'll mute myself and we'll basically invert it we'll mute ourselves and we'll let
everyone in the room get a chance to talk to each other and then i could just kind of leave it
running and so we have to post a phone call it's happening it's happening now it's happening yes
shake your hands we got two more questions. So next to last question is,
have you ever considered doing a startup
versus working at a company?
I'll answer first again,
because I'm selfish.
You know, considering doing a startup.
Yeah, I considered it.
I never seriously pursued it myself.
Honestly, this gets into a very lengthy discussion,
which you probably should have at some time.
But I mean, I'm probably very biased.
I think again, to my earlier answer, there's a lot of confirmation bias you can find here. I think there's a lot of
startups I would probably never join. And then there's some startups I think are legitimately
doing good work or even doing one myself. And it's something every I would say probably almost
everyone in the tech field considers at some time unless they're currently in a startup.
How about you, Jason? Yeah, you someone explained this explained this to me so yeah i'm going to have a similar slant on this
as patrick and so take us both with a grain of salt neither of us have ever worked at a startup
but um someone explained it to me in a way which i really appreciated um they said that a startup
is really good for um people who have like far exceeded their resume so so you know
because if you go to a big company they're going to have you know a million you know automated or
you know semi you know like like mechanical procedures to to screen people out. And so, um, and so, you know, if you, if you have a ton of talent,
um, but you haven't built that resume yet, um, then a startup is a really good option,
right? Because, because a startup, you know, they're, they'll typically be a real person
on the other end of that form that you submit your resume to. And so I think that's
a place where it can be really beneficial. In my case, you know, I was fortunate in that, you know,
the area of research that I wanted to do, you know, there were companies that were looking for
exactly that area. And so, you know, definitely when I graduated, my resume was probably better
than my skills. My C++ skills were not that great, But I put myself as a 9 out of 10 on C++ and I was probably like a 0.5 out of 10.
Red flag. decision simple. Of course, anytime you make a decision simple, you're going to expose a whole
bunch of corner cases, right? Like, there's always, you know, at one point, all of these
big companies were startups. And if you had joined any of them, you would have been extremely lucky.
So take everything with a grain of salt there. But I think that was a very simple way to sort
of break it down that I thought made a lot of sense to me um oh the question was have
we thought of starting uh uh or or there's sort of a corollary have we ever thought of of starting
a startup or like starting a company and um boss asked that question what's that your boss was
asking because they wanted to know your boss is trying to figure out if you're starting i'm just
kidding oh yeah this person's my boss and yeah i got this email saying hr wants to talk
to me right now um no i mean i think it would be interesting um you know there's sort of this
meta question of like um specialization versus getting really specific um you know i think that
if you work at a startup you're going going, or sorry, specialization versus generalization. And so if you work at a startup, you're going to be doing a bunch of
things. You're going to be buying machines probably for the, for the people on the team,
or at least someone's going to be doing that. Um, you're going to be hiring people. You're going to
be, there's a whole laundry list of things. You're going to be finding out how to pay the Amazon bill,
right? The AWS bill. Um, um and and so these are things that a
giant company you know it's it's completely the opposite like you you're really focused on a few
things and so that's that's really the i think um sort of the the you kind of have to have the
answer to that question before you could answer the startup question and then the final question
comes from dan what are the plans for the show in 2021? And that's a great segue. And I'll pivot
it into asking you, Jason, what are the plans for the show in 2021? And just in general, what are
you thinking about 2021? Yeah, so we've already started this, you know, I think we're going to
the show is going to become sort of a bit more professional um i think that you know we we switched to a new um um you know
recording kind of like uh studio software um i think we'll probably move the podcast on to
you know um one of these podcast platforms instead of what we have now.
And basically, a lot of the infrastructure that we've set up for the podcast,
we set up like a decade ago or something.
And so we had an issue a few months back
that really kind of made me realize
that we need to spend a little bit of time to modernize.
And so I'm going to go through and bit of time to modernize and so um you know i'm going to
go through and kind of kind of do a lot of that um you know beyond the tech stuff a couple of
things i'd like us to do is is to get back to doing um you know our regular show we've had some
like unbelievable interview opportunities like peter voss we have some people we've we've already
interviewed that we're going to
show everyone next month. And so the interview opportunities have been just amazing. I mean, I actually the other day was searching for application performance management for something
I was trying to do at work. And I came across Matt, Matt Watson, who he interviewed. I came
across a blog post from him and I wasn't even looking for him specifically. And I wasn't doing the personalized search either. So, I mean,
this was just a general search. So, you know, we've had such amazing opportunities, but because
of that, we haven't done the regular show in a while. And I am starting to miss that a bit. So,
you know, I don't know if we're going to increase the cadence or if we're going to
just have to tell some interviewers, you know, we have to push the schedule out. But that is something that, you know, I'd like to see us do. And I guess the last thing is I just want to be a post anything on Twitter other than the show episodes.
But one thing I posted yesterday was a shout out to Vercel and just some of the amazing software they've built.
And, you know, I think I'm going to try and do more of that.
You know, we have the RSS feed.
We have the Patreon feed.
And so if people just want to know when a new episode is out, there's plenty of podcast apps will do that.
You know, so so I think I could be a little bit more vocal on on the Twitter feed and just kind of tell people, you know, here's some really cool things to check out.
Yeah, I guess you kind of covered stuff for the podcast.
I mean, in my personal personal life, I mean, I think try to stay safe and healthy for 2021, you know, continue more of the same.
I think personally, I've been moving more into management and lots of programming.
So that's been something that's taught me a lot that it wasn't able to rely on, you know, just my previous work as much because being a technical engineering manager, I guess,
everybody has different names for it, you know, is, I always knew what I wanted my managers to do.
And now I'm on the other side and trying to be what the engineers, you know, need is something
that's a learning opportunity for me. And so I'll probably have a lot more opinions about that kind
of stuff in the future. And as I do a little bit less programming, a lot more opinions about that kind of stuff in the future.
And as I do a little bit less programming, a little more people work, but it's something that that's been a fun adventure so far.
Yeah, I guess for me personally next year.
Yeah, similar to what Patrick said, you know, I also need to get back on the exercise bandwagon.
You know, I think that when I was going into the office, I had a pretty good routine.
I'm sure this, you know, a lot of people, maybe the majority of people in the country
have sort of the same situation that we do where, yeah, I just haven't really, I don't
even know if the gyms are open in my state or anything.
So I have to figure a lot of that out on the exercise side.
But so yeah, I think 2021 will really be just, I think, finding the new normal, like getting back
into routines that we had, you know, before the pandemic. I think that's going to be a big part
of it. And it's not going to be the way it was, right? I'm probably going to be remote for the
whole year. So, um, um, but,
you know, within, you know, even within those changes and you're getting back some of those
healthy routines. Um, I think also, you know, on the personal side is, uh, I think I want to try
and find something to new to build. You know, I think the eternal terminal was, is, is, you know,
awesome. Um, you know, I still use it a lot, and there's still some things I want to build there.
But Eternal Terminal was something I built over the holiday break.
And so as we come to this next holiday break, I'm trying to think,
what is the next kind of cool thing that I can build that can really help out developers and stuff like that?
So yeah, I I think, uh,
I think that's, that's it for me. So, um, I just wanted to give a big shout out to, um,
everyone out there, you know, our patrons who supported us. Oh, actually, um, um,
yeah, we have to, to, uh, um, yeah, we have to, to, uh, definitely acknowledge all
the patrons and everyone who, who, you know, has, has, has given us so much support over
the year.
I think that, um, you know, it's been, it's been amazing watching, you know, the, the
podcast just continue to grow.
And, uh, you know, I think that want to thank all the interviewers who who you know have
have really provided such amazing content and commentary in so many different areas
and thank everyone who everyone out there who's listening you know people who listen live people
who subscribe to the podcast especially people who you know give us give us feedback you know
write us in tell us new languages you want to see,
tell us people we should interviews.
A lot of the interviews came from someone out there emailing us and saying,
Hey, you should talk to this person. So thank you for doing that. And yeah,
overall, everyone have a safe, happy holidays. holidays music by eric barn dollar programming throwdown is distributed under a creative commons
attribution share alike 2.0 license you You're free to share, copy, distribute, transmit the work, to remix, adapt the work, but you
must provide attribution to Patrick and I and sharealike in kind.