Is there a “traditional background” for programmers anymore?

Show Notes

Paths
  • Educational paths toward programming 
    • Self-taught - blogs, articles, tutorials, online platforms like Udemy, code academy
    • 4-year computer science degree
    • 2-year “web design” degree
    • 12-week full-time boot camp
    • 6-month part-time bootcamps
    • Bootcamps that specialize in a discipline like data science, graphics design
    • Bootcamps that serve underrepresented groups - resilient coders, shecodes.io
      • time, attention, resources
    • Master in computer science
  • Side door and back door entryways to tech 
    • Product management 
      • The mom test
      • product school
    • Project management
    • Support, then technical support
    • Solution architects
    • Developer marketing
Advice for people thinking about getting into programming
  • Learn hello world
  • Go through a codeacademy or similar interactive course
  • Try to build something on replit or glitch where you don't need an actual environment set up
  • Connect with other new devs on Twitter
  • Use https://exercism.io/ to get feedback about your code, don’t work in a silo
  • https://roadmap.sh/
How to pick a language or stack to start with in 2022
  • Programming languages are tools
  • Some are more commonly used to build specific things 
    • JavaScript/TypeScript - web (started as front end, now is also backend, is what browsers run), iot, drones, most things support javascript (Airtable, lambdas, google sheets, etc.)
    • HTML/CSS - web (front end only, structure and style)
    • Python - web, data, machine learning
    • Ruby - web, small utilities
    • PHP - web
    • C#/F# - enterprise, windows, azure, games like X-Box
    • Go - CLI tools, scalable servers and large-scale programs
    • Elixir - web, event-driven systems, distributed systems
    • Java - enterprise tools
    • SQL - data only, not for building applications
    • R - data
    • Fortran, COBOL, VBA, objective-c, Perl - I would not invest much in learning these unless it was required for a job I was already hired at
  • CJ says - learn javascript, but then I say learn ruby and ruby on rails
  • Whatever you decide, stick with it until you feel comfortable building decent working applications
Cord management
Other mentions

Black tech pipeline - https://blacktechpipeline.com/ 
wnb.rb - https://www.wnb-rb.dev/
codeacademy - https://www.codecademy.com/

Full Transcripts

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. 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.