<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <generator uri="http://jekyllrb.com" version="4.3.2">Jekyll</generator>
  
  
  <link href="https://onlearningtoprogram.com/feed.xml" rel="self" type="application/atom+xml" />
  <link href="https://onlearningtoprogram.com/" rel="alternate" type="text/html" />
  <updated>2024-02-18T15:13:52+00:00</updated>
  <id>https://onlearningtoprogram.com//</id>

  
    <title type="html">On Learning to Program</title>
  

  
    <subtitle>On Learning to Program helps aspiring Junior Software Engineers find their first job.</subtitle>
  

  
    <author>
        <name>Will Barrett</name>
      
      
    </author>
  

  
  
    <entry>
      
      <title type="html">Why Spamming Job Applications Doesn’t Work and What to Try Instead</title>
      
      
      <link href="https://onlearningtoprogram.com/why-spamming-job-applications-doesnt-work/" rel="alternate" type="text/html" title="Why Spamming Job Applications Doesn&apos;t Work and What to Try Instead" />
      
      <published>2024-02-06T00:00:00+00:00</published>
      <updated>2024-02-06T00:00:00+00:00</updated>
      <id>https://onlearningtoprogram.com/why-spamming-job-applications-doesnt-work</id>
      <content type="html" xml:base="https://onlearningtoprogram.com/why-spamming-job-applications-doesnt-work/">&lt;p&gt;Sending out 300, 400, 600, or more resumes and hearing nothing back, or maybe only a few interviews. Hand-crafting cover letters over and over until ChatGPT has nothing on you because you’ve practiced so much. Getting ghosted after interviews. Spending day after day, week after week searching for job listings, writing cover letters, and sending off applications (including re-entering the resume details in proprietary systems), all with the hope that someone, somewhere, will offer you a chance.&lt;/p&gt;

&lt;p&gt;The truth is that we’ve entered a dystopia. Humans will never read most job applications - they’ll be caught in the applicant tracking system, screened by a computer program tasked with finding specific keywords, and discarded. This is especially true at larger companies, which, perversely, are more likely to have entry-level roles than small companies. Add to this the ever-increasing amount of experience required for “entry-level” roles, and we’ve created a perfect storm for job seekers looking to break into the industry. An AI arms race, where application screening technology is rejecting most applications in search of the “perfect candidate,” and candidates are submitting more and more applications in the hopes that playing the numbers harder will get them through the door.&lt;/p&gt;

&lt;h3 id=&quot;insanity-is-famously-defined-as-doing-the-same-thing-repeatedly-and-continually-expecting-a-different-result&quot;&gt;Insanity is famously defined as doing the same thing repeatedly and continually expecting a different result!&lt;/h3&gt;

&lt;p&gt;Fundamentally, the vast majority of hiring decisions are human decisions. Companies don’t decide to hire someone - the people who work there do. Corporations don’t have opinions - their CEOs do. Applicant tracking systems don’t make job offers - hiring managers do. So, what does that mean? It means there’s a better way. One that doesn’t involve spending hours, weeks, months, sending in application after application and hoping irrationally for someone to reach out and invite you for a cold phone call, then decide in 30 minutes that you’re worth something and pass you on to the following interview instead of judging and ghosting you. Humans are designed to crave and build connections, but the system we’ve built for hiring people couldn’t be better constructed to avoid creating those connections. What’s the solution?&lt;/p&gt;

&lt;h2 id=&quot;opt-out-of-the-resume-game-insanity&quot;&gt;Opt out of the resume game insanity!&lt;/h2&gt;

&lt;p&gt;What if I told you that in 15 years in tech, averaging one new job every two years, I’ve only ever sent in one cold job application? That every job I’ve gotten has been something I was invited to apply to? You might say that I was well-connected or headhunted due to an incredible degree from a top-tier school, but none of that is true. I started with a degree in Classical Cello from a music conservatory. I’ve had no formal CS training, and my network started as effectively zero because I grew up in a small town in Maine.&lt;/p&gt;

&lt;p&gt;You can do the same thing. You can stop applying, and you can get a job. I’m going to tell you how to do it. It’s pretty simple. You need to&lt;/p&gt;

&lt;h2 id=&quot;build-human-connections&quot;&gt;Build Human Connections&lt;/h2&gt;

&lt;p&gt;Ahhh! Gahhh! Scary! That sounds like another way to say networking, and I don’t like networking! It feels slimy and fake! It won’t work because I’m introverted and can’t stand talking about the weather repeatedly at mixers with sad drinks and name tags for all the people I don’t know.&lt;/p&gt;

&lt;p&gt;Nope. That’s not what we’re doing. We’re building human connections. We’re not networking. We will show up as our authentic selves, speak the truth, talk about what we need and want, and help others with what they need and want.&lt;/p&gt;

&lt;p&gt;Where do we start? With our friends. If your friend likes someone, you’re more likely to like them, too, right? You’ll reach out to some of your friends, tell them what you want and need, and ask them who they think you should talk to about it. That’s what’s called a warm intro. We’re going to get you some warm intros. So, without further ado, here’s how we’ll start the work to get a job in 5 steps:&lt;/p&gt;

&lt;h2 id=&quot;5-steps-to-finding-human-connection&quot;&gt;5 Steps to Finding Human Connection&lt;/h2&gt;

&lt;ol&gt;
  &lt;li&gt;Take a 1-hour break from sending out applications.&lt;/li&gt;
  &lt;li&gt;Pull up your friends list. You might have a list of friends on Linkedin, Facebook, Twitter, or in your phone contact list.&lt;/li&gt;
  &lt;li&gt;Choose five people you think will write back and might either have a lot of friends or be connected somehow to what you want to do. If you’re not sure, try them anyway! It’s hard to remember what everyone’s high school sweetheart’s third cousin does. Write down your friends’ names.&lt;/li&gt;
  &lt;li&gt;Fill in this template: “Hey {friend’s name}, I hope you’re having a good day! I’m looking for a job. It might be cool to {describe the job you want}. I’m interested in talking to people in {target} industry to ask questions and learn more. Do you know anyone who might be connected to that somehow who I could chat with?”&lt;/li&gt;
  &lt;li&gt;Send a version of that template to each person you wrote down in step 3. See who will write back and talk to them! If your friend offers an introduction, say yes! Now, start working on finding a time to chat with them.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Was that weird? You’re just writing to your friends and asking if they know anyone. The truth is, this is how most jobs are found - through human connections. I bet some (not all) of them wrote back. I bet you got at least one introduction you wouldn’t have otherwise. If not, no big deal, you’re building the muscle!&lt;/p&gt;

&lt;p&gt;Congratulations on taking the first step. Stay tuned. Subscribe to the email notifications. Over the next few weeks, I’ll lay out a series of practices to help you land a tech job without so much pain.&lt;/p&gt;</content>

      
      
      
      
      

      
        <author>
            <name>Will Barrett</name>
          
          
        </author>
      

      

      

      
        <summary type="html">Sending out 300, 400, 600, or more resumes and hearing nothing back, or maybe only a few interviews. Hand-crafting cover letters over and over until ChatGPT has nothing on you because you’ve practiced so much. Getting ghosted after interviews. Spending day after day, week after week searching for job listings, writing cover letters, and sending off applications (including re-entering the resume details in proprietary systems), all with the hope that someone, somewhere, will offer you a chance.</summary>
      

      
      
    </entry>
  
  
  
    <entry>
      
      <title type="html">What programming languages do programmers use in the real world?</title>
      
      
      <link href="https://onlearningtoprogram.com/what-programming-languages-do-programmers-use-in-the-real-world/" rel="alternate" type="text/html" title="What programming languages do programmers use in the real world?" />
      
      <published>2023-11-30T00:00:00+00:00</published>
      <updated>2023-11-30T00:00:00+00:00</updated>
      <id>https://onlearningtoprogram.com/what-programming-languages-do-programmers-use-in-the-real-world</id>
      <content type="html" xml:base="https://onlearningtoprogram.com/what-programming-languages-do-programmers-use-in-the-real-world/">&lt;p&gt;You may have recently embarked on your programming journey, or you’re learning your first programming language. You’re considering getting a job and wondering if Python is only used for interviews and may be less commonly used in day-to-day tasks during jobs or internships. Should you consider learning other languages like Java or JavaScript for better prospects in future job opportunities? What should you learn first? And, now that you’ve started learning, are you learning the right thing?&lt;/p&gt;

&lt;p&gt;Whew, yeah, we’ve all been there. Luckily,&lt;/p&gt;

&lt;h2 id=&quot;the-first-programming-language-you-learn-doesnt-matter&quot;&gt;The first programming language you learn doesn’t matter&lt;/h2&gt;

&lt;p&gt;Why? Because programmers don’t use a single language. Programmers use  &lt;strong&gt;all of them&lt;/strong&gt; in the real world. Programmers in the real world pick the best language for their problems. So, you will program in many languages over your career if you stick with it. Don’t worry; each additional programming language you learn gets easier after your first one.&lt;/p&gt;

&lt;p&gt;What’s most important is to pick a single language, learn it, and start building projects with it. Start using it for something. So, &lt;strong&gt;if you’re already learning a language, stick with that language until you’ve done a few projects.&lt;/strong&gt; Then be prepared to keep learning and growing, because over the next few years, you’ll need to learn a bunch more.&lt;/p&gt;

&lt;p&gt;I can tell you’re not satisfied with that answer, and it doesn’t answer the question of what programming languages programmers use in the real world so let’s look at the data:&lt;/p&gt;

&lt;h2 id=&quot;what-the-data-says-about-what-programming-languages-programmers-use&quot;&gt;What the data says about what programming languages programmers use:&lt;/h2&gt;

&lt;p&gt;Regarding data on the subject, we can look at some great, high-profile resources from the tech community. The best ones are the State of the Octoverse from Github and the StackOverflow Developer Survey Results. GitHub is the world’s largest host of code repositories. StackOverflow is the biggest Q&amp;amp;A site for programmers on the internet, so typically, they know what they’re talking about regarding programming language usage.&lt;/p&gt;

&lt;p&gt;The &lt;a href=&quot;https://octoverse.github.com/2022/top-programming-languages&quot;&gt;State of the Octoverse from 2022&lt;/a&gt; shows the history of programming language popularity on the platform going back to 2014, and while the top languages have moved around in terms of order, &lt;strong&gt;it has been the same ten languages since 2014&lt;/strong&gt;. In an industry that moves as fast as technology, that’s pretty shocking. Here’s the list, ordered from most popular to least popular as of 2022:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;JavaScript&lt;/li&gt;
  &lt;li&gt;Python&lt;/li&gt;
  &lt;li&gt;Java&lt;/li&gt;
  &lt;li&gt;TypeScript&lt;/li&gt;
  &lt;li&gt;C#&lt;/li&gt;
  &lt;li&gt;C++&lt;/li&gt;
  &lt;li&gt;PHP&lt;/li&gt;
  &lt;li&gt;Shell&lt;/li&gt;
  &lt;li&gt;C&lt;/li&gt;
  &lt;li&gt;Ruby&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Looking at the &lt;a href=&quot;https://survey.stackoverflow.co/2023/#most-popular-technologies-language-prof&quot;&gt;StackOverflow Developer Survey&lt;/a&gt;’s programming language stats and filtering for professional developers, the list looks pretty similar for the top 10, with a few minor differences:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;JavaScript&lt;/li&gt;
  &lt;li&gt;HTML/CSS&lt;/li&gt;
  &lt;li&gt;SQL&lt;/li&gt;
  &lt;li&gt;Python&lt;/li&gt;
  &lt;li&gt;TypeScript&lt;/li&gt;
  &lt;li&gt;Bash/Shell (all shells)&lt;/li&gt;
  &lt;li&gt;Java&lt;/li&gt;
  &lt;li&gt;C#&lt;/li&gt;
  &lt;li&gt;C++&lt;/li&gt;
  &lt;li&gt;PHP&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;C comes in at number eleven, and Ruby is still in the top twenty.&lt;/p&gt;

&lt;p&gt;If the language or languages you are learning are in either of these lists, you can be assured that programmers are certainly using them professionally.  They’re using them daily, in large numbers, across many different projects. But that’s not the full story.&lt;/p&gt;

&lt;h2 id=&quot;what-the-data-tells-us-companies-are-hiring-for&quot;&gt;What the data tells us companies are hiring for:&lt;/h2&gt;

&lt;p&gt;Thankfully, &lt;a href=&quot;https://twitter.com/logan__dev&quot;&gt;this dude named Logan&lt;/a&gt; already &lt;a href=&quot;https://www.devjobsscanner.com/blog/top-8-most-demanded-programming-languages/&quot;&gt;scraped 14 million developer job postings&lt;/a&gt; between January to May to give us the top-mentioned programming languages (I pulled the top 10 from his full list):&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;JavaScript/TypeScript&lt;/li&gt;
  &lt;li&gt;Python&lt;/li&gt;
  &lt;li&gt;Java&lt;/li&gt;
  &lt;li&gt;C#&lt;/li&gt;
  &lt;li&gt;PHP&lt;/li&gt;
  &lt;li&gt;C/C++&lt;/li&gt;
  &lt;li&gt;Ruby&lt;/li&gt;
  &lt;li&gt;Go&lt;/li&gt;
  &lt;li&gt;SQL&lt;/li&gt;
  &lt;li&gt;Scala&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Mostly similar to previous lists, with the addition of Scala. However, when we look at what languages &lt;strong&gt;companies pay the most for&lt;/strong&gt;, we get a different list. This is pulled, again from the &lt;a href=&quot;https://survey.stackoverflow.co/2023/#technology-top-paying-technologies&quot;&gt;StackOverflow 2023 Developer Survey&lt;/a&gt; - the top 10 are:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;Zig&lt;/li&gt;
  &lt;li&gt;Erlang&lt;/li&gt;
  &lt;li&gt;F#&lt;/li&gt;
  &lt;li&gt;Ruby&lt;/li&gt;
  &lt;li&gt;Clojure&lt;/li&gt;
  &lt;li&gt;Elixir&lt;/li&gt;
  &lt;li&gt;Lisp&lt;/li&gt;
  &lt;li&gt;Scala&lt;/li&gt;
  &lt;li&gt;Pero&lt;/li&gt;
  &lt;li&gt;Go&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;OK, what the heck? &lt;strong&gt;This list looks totally different!&lt;/strong&gt; What’s going on here? Companies are &lt;strong&gt;having trouble hiring for these languages&lt;/strong&gt;, so they’re willing to pay more. This is where there’s a &lt;strong&gt;market gap&lt;/strong&gt; - strong ability in these languages is unusual, and when a company needs it, they &lt;em&gt;really&lt;/em&gt; need it, so they’ll fork out more money to get it.&lt;/p&gt;

&lt;h2 id=&quot;what-the-data-doesnt-tell-us&quot;&gt;What the data doesn’t tell us&lt;/h2&gt;

&lt;p&gt;The data tells us what programmers use a lot, but it ignores the fact that what programmers use &lt;strong&gt;depends on what they try to do&lt;/strong&gt;. Some really important languages aren’t on the list. Want to write an iPhone app? The primary languages for that need to be added to these lists. How about building a telephony server? Yup, it’s time to add some more. There are a ton of different things you can do in programming, so let’s look at &lt;strong&gt;the languages you might want to learn based on three things you may be trying to do:&lt;/strong&gt;&lt;/p&gt;

&lt;h3 id=&quot;building-a-website-or-saas-app&quot;&gt;Building a Website or SaaS App&lt;/h3&gt;

&lt;p&gt;You’ll want the main languages of the internet - JavaScript’s top spot in popularity is largely responsible for its central role in internet work. You’ll also need at least HTML, CSS, and SQL. You may want to add Python, Ruby, Java, Go, Elixir, or some other back-end-specific language because JavaScript on the server (node.js) has some downsides. That’s a minimum, but there’s a ton more you can learn here to automate deployments and get into the operations side - HCL for server configuration, Bash or other shell scripting, JSON, etc. The sky’s the limit.&lt;/p&gt;

&lt;h3 id=&quot;creating-a-mobile-application&quot;&gt;Creating a mobile application&lt;/h3&gt;

&lt;p&gt;If you want to build for iPhone, the choices provided by Apple Objective-C or Swift. On Android, your choices are Java or Kotlin. Yup, there’s no overlap. So, suppose you want to build one application that you can deploy to both. In that case, you must use something like Flutter (a framework that leverages the Dart programming language) or React Native (a framework that leverages JavaScript, HTML, and CSS).&lt;/p&gt;

&lt;h3 id=&quot;processing-scientific-data&quot;&gt;Processing Scientific Data&lt;/h3&gt;

&lt;p&gt;If you’re trying to interpret scientific data, then Python might work for you. Still, your lab uses Matlab for interpreting MRI or other imaging-related data, R for statistics, or C if it’s complicated stuff requiring GPU processing. You’ll also need to understand the data storage formats, which could be CDF, EAS3, HDF, or anything else in a &lt;a href=&quot;http://justsolve.archiveteam.org/index.php/Scientific_Data_formats&quot;&gt;Cambrian explosion of data formats created for science&lt;/a&gt;. Your language will likely be determined more by what your collaborators and people in your industry are already leveraging than by anything else.&lt;/p&gt;

&lt;h3 id=&quot;ok-so-your-point&quot;&gt;OK, so your point?&lt;/h3&gt;

&lt;p&gt;Of course, there are many other things you can try to do with computers. I won’t list all of them now. The point is that it’s &lt;strong&gt;rarely a single language in isolation that allows a programmer to get something done&lt;/strong&gt;, and if you want to do more than one thing, you’ll need to &lt;strong&gt;learn different languages for different tasks&lt;/strong&gt;. This means, again, &lt;strong&gt;whatever language you have started learning is the right one for now&lt;/strong&gt;.&lt;/p&gt;

&lt;h2 id=&quot;ugh-this-is-a-significant-learning-curve&quot;&gt;Ugh, this is a significant learning curve!&lt;/h2&gt;

&lt;p&gt;Yup. It’s why programmers make the big bucks by any reasonable (and most unreasonable) standards. It takes work. However, your first language is the hardest. With your first language, you’re &lt;strong&gt;not learning just the language&lt;/strong&gt;. You’re learning:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Programming fundamentals (loops, control statements, etc)&lt;/li&gt;
  &lt;li&gt;How to use a text editor&lt;/li&gt;
  &lt;li&gt;Basics of the command line&lt;/li&gt;
  &lt;li&gt;How to structure your code (classes, methods, imports, files, etc)&lt;/li&gt;
  &lt;li&gt;How to fix something and debug things&lt;/li&gt;
  &lt;li&gt;How not to flip a table after an hour of staring at the same error&lt;/li&gt;
  &lt;li&gt;A ton of jargon that’s industry-specific and usually ill-explained&lt;/li&gt;
  &lt;li&gt;Some very basic data structures&lt;/li&gt;
  &lt;li&gt;How to solve simple and increasingly complex problems with code&lt;/li&gt;
  &lt;li&gt;How to find answers to your problems&lt;/li&gt;
  &lt;li&gt;How to read technical documentation&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And about 30 other skills, &lt;strong&gt;all of which will transfer to your next language and the one after that&lt;/strong&gt;. You’re also preparing to learn about Computer Science, which requires a strong grasp of the fundamentals.&lt;/p&gt;

&lt;p&gt;So, the first programming language you learn doesn’t matter. The one you’re working on is right. If you haven’t started, just pick one and get going. You’ll use it for something eventually.&lt;/p&gt;</content>

      
      
      
      
      

      
        <author>
            <name>Will Barrett</name>
          
          
        </author>
      

      

      

      
        <summary type="html">You may have recently embarked on your programming journey, or you’re learning your first programming language. You’re considering getting a job and wondering if Python is only used for interviews and may be less commonly used in day-to-day tasks during jobs or internships. Should you consider learning other languages like Java or JavaScript for better prospects in future job opportunities? What should you learn first? And, now that you’ve started learning, are you learning the right thing?</summary>
      

      
      
    </entry>
  
  
</feed>
