<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Weston Ludeke</title>
	<atom:link href="https://www.westonludeke.com/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.westonludeke.com</link>
	<description></description>
	<lastBuildDate>Thu, 14 Nov 2024 19:51:30 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	
<site xmlns="com-wordpress:feed-additions:1">97502576</site>	<item>
		<title>My First Open Source Contribution</title>
		<link>https://www.westonludeke.com/my-first-open-source-contribution/</link>
		
		<dc:creator><![CDATA[Weston]]></dc:creator>
		<pubDate>Thu, 14 Nov 2024 19:51:30 +0000</pubDate>
				<category><![CDATA[code]]></category>
		<guid isPermaLink="false">https://www.westonludeke.com/?p=4003</guid>

					<description><![CDATA[As an aspiring software engineer, there’s always something new to learn, whether it&#8217;s improving your coding skills, understanding best practices, or getting familiar with tools that are essential in the industry. After finishing studying software engineering at Launch School, I started the prep course for their Capstone program. While going through the prep material, I [&#8230;]]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image size-large"><img decoding="async" src="https://images.unsplash.com/photo-1618401471353-b98afee0b2eb" alt=""/><figcaption class="wp-element-caption">Photo by <a href="https://unsplash.com/@synkevych">Roman Synkevych</a> on <a href="https://unsplash.com/photos/black-and-white-penguin-toy-wX2L8L-fGeA">Unsplash</a>. Used under a Creative Commons license.</figcaption></figure>



<p>As an aspiring software engineer, there’s always something new to learn, whether it&#8217;s improving your coding skills, understanding best practices, or getting familiar with tools that are essential in the industry. After finishing studying software engineering at <a href="https://launchschool.com">Launch School</a>, I started the prep course for their Capstone program. While going through the prep material, I knew that being familiar with GitHub would be an integral part of being a good developer, both for Capstone as well as afterward on the job.</p>



<p>The prep work included a basic overview of how to create a sample repository, fork repos, make pull requests, and submit them. However, I wanted to take things further. Rather than just creating test repos for practice, I decided to step my game up and get involved in an actual open-source project, especially since I had some extra time before Capstone started.</p>



<h2 class="wp-block-heading"><strong>The Open Source Landscape</strong></h2>



<p>The beauty of open-source software is that it&#8217;s everywhere on GitHub. There are countless repositories with issues ranging from simple bug fixes to major feature requests. These issues are typically listed in the &#8220;Issues&#8221; tab of a repo, and they often come with tags that highlight their difficulty level. Some issue tags are particularly helpful for noobs, like the <em>&#8220;good first issue&#8221;</em> tag, which indicates that an issue is suitable for developers who are just getting started with open-source contributions. I decided to find an issue with this tag to make my first contribution.</p>



<h2 class="wp-block-heading"><strong>Finding the Right Project</strong></h2>



<p>The open-source world is vast and diving in can be overwhelming. I spent several hours researching various projects and browsing repositories tagged with <em>&#8220;good first issue&#8221;</em>. Some projects were too complicated for my skill level, while others were already flooded with contributions, making it difficult to get noticed. I continued to do research, hoping that the right opportunity was out there that wouldn&#8217;t require several months&#8217; worth of work.</p>



<p>Eventually, I came across the <a href="https://www.a11yproject.com/">A11y Project</a>, a non-profit organization focused on making the web more accessible to everyone, including people with disabilities. This was a cause I felt strongly about, and the project seemed like a perfect fit for my first contribution. Looking at <a href="https://github.com/a11yproject/a11yproject.com">their repo</a>, the issues tagged as <em>&#8220;<a href="https://github.com/a11yproject/a11yproject.com/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22">good first issue</a>&#8220;</em> were clear and understandable, and I could see how my contributions could hopefully make an impact.</p>



<h2 class="wp-block-heading">My First Pull Request</h2>



<p>While digging through the repo, I found a good issue relating to making some simple HTML, CSS, and Markdown changes to their codebase. Though this wouldn&#8217;t be super challenging from a technical perspective, I chose to work on this issue as my first open-source contribution as my primary goal was geared towards the process of learning how the open-source contribution process works.</p>



<p>After reviewing the guidelines for contributing to the A11y Project and ensuring that I understood the issue I was tackling, I forked the repo and made the necessary changes. I then created a pull request and submitted it for review. Not too long after, my changes got approved and merged into the codebase! While it wasn’t a huge contribution, it was a meaningful step in my journey as a developer.</p>



<h2 class="wp-block-heading">Final Thoughts</h2>



<p>In addition to learning about how the open-source contribution process works, I learned a few additional valuable lessons: start with manageable &#8220;good first issues&#8221; to avoid feeling overwhelmed, don&#8217;t hesitate to ask questions in the repo since most communities are welcoming, always read the contributing guidelines to save time, and be patient during the review process as it may take time for your pull request to be merged.</p>



<p>If you’re new to open source and want to learn more, start by reading <a href="https://docs.github.com/en/get-started/exploring-projects-on-github/finding-ways-to-contribute-to-open-source-on-github">GitHub&#8217;s Contributing Guide</a>. Next, I highly recommend checking out websites like <a href="https://www.firsttimersonly.com">First Timers Only</a> which curate a list of open-source projects which welcome new contributors.</p>



<p>Hopefully, this post encourages other newbie developers to take the leap and contribute to open source. It&#8217;s a fantastic way to grow as a developer while contributing to something meaningful. Whether you’re fixing bugs, writing documentation, or building features, there’s always something to do in the open-source world. So, take the plunge and start contributing…it&#8217;s a great way to improve your skills while making a difference in the open-source community.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">4003</post-id>	</item>
		<item>
		<title>Launch School Core Curriculum Review: The Slow Path Towards Mastery of Software Engineering</title>
		<link>https://www.westonludeke.com/launch-school-core-curriculum-review/</link>
		
		<dc:creator><![CDATA[Weston]]></dc:creator>
		<pubDate>Sun, 08 Oct 2023 17:36:02 +0000</pubDate>
				<category><![CDATA[code]]></category>
		<guid isPermaLink="false">https://www.westonludeke.com/?p=3929</guid>

					<description><![CDATA[“Mastery is not a function of genius or talent. It is a function of time and intense focus applied to a particular field of knowledge” -Robert Greene, Mastery After three and a half years of studying part-time while working at my day job on the support team at Streak, I finally completed Launch School’s core [&#8230;]]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image size-large"><img fetchpriority="high" decoding="async" width="1024" height="683" src="https://www.westonludeke.com/wp-content/uploads/2023/10/spacex-1-1024x683.jpg" alt="" class="wp-image-3931" srcset="https://www.westonludeke.com/wp-content/uploads/2023/10/spacex-1-1024x683.jpg 1024w, https://www.westonludeke.com/wp-content/uploads/2023/10/spacex-1-656x437.jpg 656w, https://www.westonludeke.com/wp-content/uploads/2023/10/spacex-1-768x512.jpg 768w, https://www.westonludeke.com/wp-content/uploads/2023/10/spacex-1-1536x1024.jpg 1536w, https://www.westonludeke.com/wp-content/uploads/2023/10/spacex-1-750x500.jpg 750w, https://www.westonludeke.com/wp-content/uploads/2023/10/spacex-1.jpg 1920w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">rocket launch via <a href="https://unsplash.com/photos/TV2gg2kZD1o?utm_content=creditCopyText&amp;utm_medium=referral&amp;utm_source=unsplash">Unsplash</a>. used under a Creative Commons license</figcaption></figure>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p><em>“Mastery is not a function of genius or talent. It is a function of time and intense focus applied to a particular field of knowledge” -Robert Greene, Mastery</em></p>
</blockquote>



<p>After three and a half years of studying part-time while working at my day job on the support team at Streak, I finally completed Launch School’s core curriculum in June of 2023. For the unfamiliar, Launch School is an online, self-paced software engineering school focused on teaching the fundamentals of web application development through mastery-based learning.</p>



<p>My time as a student since beginning my studies has transformed me from someone with zero self-confidence that I’d ever be capable of being a professional developer to someone who currently has no doubt about my abilities. When I started the program back in January 2020, I had very little prior experience and was barely able to code much of anything. Today, I’m able to think deeply about code and am also able to create in-depth web applications. Throughout the past 3½ years, I dedicated a staggering 1,718 hours to working through the Launch School core curriculum. It has been an incredibly enlightening experience leading to tons of growth both as a programmer as well as personally. In this article, I&#8217;ll share my insights and provide an overview of the program&#8217;s core curriculum.</p>



<h3 class="wp-block-heading"><strong>Origin Story</strong></h3>



<p>Before Launch School, I did a few different courses on Udemy, Codecademy, and Treehouse which taught me a bit of basic syntax and how to create simple websites. I also played around briefly with The Odin Project and FreeCodeCamp, though neither of those two programs clicked enough for me to stick with either.</p>



<p>By 2019, I had learned enough of the absolute basics of coding that I could <em>“hack and slash”</em> different snippets of janky code together in order to make a barely functional website or app. Meaning, I knew enough that I could copy different pieces of code taken from several different sources across the web in order to build a project, and <a href="https://www.westonludeke.com/using-the-stripe-api-and-a-google-apps-script-to-populate-a-google-sheet-invoice-template/">I was able to build a custom Google Sheets invoice</a> tool for my day job using the Stripe API and Google Apps Script.&nbsp;</p>



<p>While I was impressed with myself for getting to the level that I could duct-tape that app together, the truth is, I barely knew what any of that code was actually doing. Being able to copy/paste pieces of code together to create a working app had some value to me as a beginner, and it was an important milestone for me to reach in my learning journey, but afterward, I still didn&#8217;t have the ability to understand what was happening on each line in the application. What that meant was that I had no idea how to troubleshoot the code when things would inevitably break. And even if I <em>could</em> eventually fix any potential bugs, I knew it would take an incredible amount of time to even begin to understand what went wrong in the code. After finishing that project, I knew I was still at a beginner level and was a long way from being good enough to work in a high-quality software engineering role at a top-level tech firm.</p>



<p>I then continued to do a lot of research on what to do next to fill my knowledge gaps and to advance to the next level. There are many bootcamps on the market and I spent time researching them, but I discovered many bootcamps require a rather large financial commitment of roughly $15,000-20,000 USD or they require the student to agree to an income share agreement (ISA) where they agree to give up a sizable portion of their future earnings until the tuition is paid. Even more concerning to me is that several of those programs require students to agree to pay the tuition in full and/or fork over a percentage of their income via an ISA even if they fail to complete the program or if they get removed from the program involuntarily. Not cool.&nbsp;</p>



<p>I also researched enrolling at a traditional brick-and-mortar school to obtain a post-baccalaureate degree in Computer Science. The good news is there are several online CS undergrad programs that would’ve allowed me to go back to school part-time while keeping my full-time day job. One of the post-bacc programs I looked at closely was the CS program at Oregon State University, which seems to be fairly reputable and is a moderately-known school in the US. However, I decided against doing the OSU program as it would cost about $33k USD and I estimated it would take me about four years of part-time study on nights and weekends to complete the program. Several students on Reddit also were saying that the program’s material in many of their courses is subpar and that they were essentially having to teach themselves the material, which made the program seem suboptimal at that price point and for what I was looking for.</p>



<p>Another route I considered going was potentially getting an MSCS degree instead of a post-bacc in CS. I looked at several online MSCS programs, such as the program at Georgia Tech which has one of the top CS departments in the US (ranked #8 by US News as of 2023). The program at Georgia Tech seems to be one of the best in the industry and also appears to be of extremely high quality. G-Tech’s program is also notable for being incredibly affordable at a total cost of less than $6k USD. After spending a lot of time researching this route, I realized that it didn’t make much sense for me to get an MSCS at this stage in my learning journey when I hadn’t previously learned the fundamentals of CS that are typically taught at the undergraduate level. Getting an MSCS when I also hadn’t yet learned the fundamentals of programming, nor previously worked as a paid software engineer, didn’t make much sense to me at this point either.</p>



<h3 class="wp-block-heading"><strong>An Oasis In The Desert</strong></h3>



<p>As I was researching the different potential paths to take, I randomly came across Launch School mentioned in a Reddit comment in late 2019. That comment sparked my interest and I later read through all of the pages on the LS website, including all of the blog posts they had published up until that point. Here was a software engineering school that promised exactly what I was looking for, to help me learn enough to go from a beginner level to a level where I would be knowledgeable and skilled enough to work as a software engineer at a top-tier company in the tech industry. I was also enamored with the fact their site had no marketing fluff and is full of high-quality, in-depth info, completely devoid of any slick sales pitches.</p>



<p>One of the most important parts that stood out to me is that <a href="https://medium.com/launch-school/were-not-a-bootcamp-c33901412c38">Launch School isn’t a bootcamp</a>. In fact, I’d argue after completing the program that Launch School is the complete opposite of the bootcamp model, the anti-bootcamp if you will. Unlike how students at bootcamps quickly progress through their program’s material and are thus given only a superficial, cursory overview of the topics, Launch School emphasizes a slower path where students do an incredibly deep dive into each of the foundational software engineering concepts. It’s the difference between only getting a brief exposure to different topics versus being able to spend the time to deeply master the concepts. As each individual course at Launch School requires an understanding of the material to the level of mastery before one is able to continue to the following course, there isn’t a single topic covered in a course that you can simply gloss over or rush through as a student. You must learn everything to the level of mastery in order to continue to the next course.</p>



<h3 class="wp-block-heading"><strong>Mastery-Based Learning</strong></h3>



<p>Traditional educational models have a fixed timeline, that is, a fixed start date and end date that are set prior to a course starting. Students are (mostly) able to pass a given course and proceed to the next course regardless of their comprehension level. Often within this traditional model, a student may pass a given course with a grade of a ‘C’ (i.e. roughly a 70-79% comprehension level of the material) and is then able to continue forward to the next course. That simply isn’t possible here, as Launch School’s mastery-based learning model removes the fixed timeline from the equation altogether. Instead, students cannot proceed past their current course until they’ve demonstrated sufficient mastery of the material, regardless of how long it takes.</p>



<p>A huge benefit of this mastery-based approach is the program accommodates individuals with various skill levels and prior experience before starting, promoting a diverse and inclusive learning environment. Some Launch School students are complete beginners who have never previously written a single line of code or have very little prior experience (like me). Other students enter the program having previously obtained computer science degrees or having prior bootcamp experience and are looking to deepen their knowledge of topics that were only covered at the surface level by their prior programs.</p>



<p>Another awesome hidden benefit of the mastery-based pedagogy is that seasoned software developers with multiple years of professional engineering experience also find tremendous value in doing Launch School. There are several students doing LS who have several years of paid, professional engineering experience, some who are frontend developers who want to learn the backend, or vice-versa. Others are even already working as full-stack developers and they realized that they need to fully master the fundamentals before they’re able to advance to more senior-level engineering roles. I knew of one student who had twelve years of professional experience as a software engineer prior to starting at Launch School and was using the program to learn the fundamentals at a deeper level so he could get promoted to more senior-level engineer roles.&nbsp;</p>



<h3 class="wp-block-heading"><strong>Aligned With Students’ Best Interests</strong></h3>



<p>When researching Launch School, I also loved that the program hadn’t taken in outside funding from venture capitalists, <a href="https://www.businessinsider.com/lambda-school-promised-lucrative-tech-coding-career-low-job-placement-2021-10">as VC money sometimes leads startups to take shortcuts</a> in order to hit unrealistic growth metrics. Of course, in theory, there’s nothing inherently wrong about a startup taking VC money, almost all of the largest tech companies do it. However, for education-based startups, it can sometimes lead to students being collateral damage if the startup is eventually forced to serve the interests of their investors instead of the students. The quality of the service provided to students may drop significantly in order to rapidly scale the company to meet the demands of their investors in order for them to realize a return on their investment. This has led some VC-backed coding schools to take on more students than they can reasonably handle, rapidly churning through staff members, and/or the course material changing on the fly without warning (sometimes changing a course’s material for students who are in the middle of the course!). There are endless stories online of these programs leaving students feeling cheated, wholly unprepared to find any decent job, and completely incapable of paying the expensive ISA bill that is now due. Not to mention, most of the other online learn-to-code programs don’t seem to have been founded by experienced software engineers.</p>



<p>Instead, what caught my eye about Launch School is that it’s run by solo entrepreneur, Chris Lee, who himself is a former engineer with decades of experience. I was also impressed with their pricing structure, realizing that it is designed to be aligned with the student’s best interests by charging a flat rate of $199 USD per month with no contracts or hidden fees, no income sharing agreements for the core curriculum, and the ability to cancel anytime. I liked that I could dip my toes into the water with Launch School and that I could cut my ties with minimum losses financially if I were to find out the program wasn’t for me. <a href="https://www.businessinsider.com/lambda-school-bloomtech-class-action-lawsuit-2023-3">Much better than the alternatives on the market</a>. After all of my research, I decided that I would enroll in Launch School!</p>



<h3 class="wp-block-heading"><strong>Learning How To Learn</strong></h3>



<p>One of the biggest adjustments for me once I started learning at Launch School was leveling up as a student in order to be able to succeed in a <a href="https://launchschool.com/mastery">mastery-based learning environment</a>. When I was in college back in 2004-08, I was a fairly subpar student academically as I approached university life with a narrow mindset. I looked at college as a means to an end and didn’t realize the immense benefits of learning new things across a wide spectrum of fields simply for the sake of learning. I wanted to graduate as quickly as possible to get a good-paying job and didn’t care about grades or about actually learning much of anything. I was often content with a passing grade of a ‘B’ or ‘C’ if it meant I could continue to other courses and graduate faster.</p>



<p>Launch School’s <a href="https://launchschool.com/pedagogy">mastery-based pedagogy</a>, and the fact I was doing the core curriculum while maintaining my day job, forced me to train myself to have an immense amount of self-discipline at a level I’ve never had before. The program recommends students study for at least 15-20 hours per week in order to maintain sufficient progress, so I knew I would have to stay incredibly focused in order to maintain my progress while working my day job on top of everything else life throws at me. The program also helped me realize that in order to be successful, even though it’s self-paced, I couldn’t do it alone. I would have to <a href="https://medium.com/launch-school/de-isolate-your-studying-104b87667b16">de-isolate my studying</a>, teaming up with other students in order to study for written assessments and to practice live coding to prepare for live coding interview assessments. It also taught me the benefits of circular learning, that is going over each course’s material multiple times in order to achieve true mastery of the material to the level of being able to pass the program’s incredibly difficult and thorough assessments.</p>



<p>When I have downtime, I’ve also been spending a lot of time <a href="https://www.westonludeke.com/readinglist/">reading as many books</a> as possible to help me understand the art and science of self-discipline and mastery. Learning that there’s no such thing as natural-born talent and that success in any field actually comes from an incredible amount of hard work, grit, and determination, was incredibly eye-opening and liberating. I had to learn that people who are incredibly successful in any discipline, from computing to mathematics to science, etc. aren’t due to some innate talent that they’re born with, but is instead due to an immense level of hard work that they put in. I also had to learn that mastery of any topic isn’t achieved due to intense, infrequent bursts of hard work over a short amount of time, but it’s instead due to consistency over a longer timeline.&nbsp;</p>



<p>These realizations were incredibly liberating as I began to understand that I too could succeed in this field given enough time and self-discipline. My poor GPA at university from fifteen years ago isn’t a reflection of who I am today, nor of my potential in the future.</p>



<h3 class="wp-block-heading"><strong>Be More Ambitious and Set Bigger Goals</strong></h3>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p><em>“Do not think that what is hard for you to master is humanly impossible; and if it is humanly possible, consider it to be within your reach.” —Marcus Aurelius</em></p>
</blockquote>



<p>Launch School has completely changed my mindset about the industry and has taught me to be a lot more ambitious and to set much bigger, bolder goals in life. This is because the program encourages students to look at the bigger picture, to approach their learning journey on building a career rather than solely aiming for getting a job. This mindset encourages students to think in terms of decades, emphasizing long-term growth and professional development.&nbsp;</p>



<p>Many other learn-to-code programs and bootcamps also encourage their graduates to get any job that they possibly can, even if the role isn’t a software engineering role, isn’t at a tech firm, and/or isn’t at a decent salary. Launch School is specifically designed for students to learn enough to build a long-term software engineering career in the tech industry. The best way to maximize your earning potential over the course of your career is to work as a software engineer at companies where the engineering team is a profit center for the company. That is, where the work the dev team does on a daily basis directly contributes to the company’s bottom line. Even though I knew a lot about the tech industry before starting the program, I had never previously known about the <a href="https://medium.com/launch-school/the-dangers-of-learning-just-enough-6b7d66393205">differences between working in a cost center versus working in a profit center</a> until Chris Lee discussed these concepts several times at length over the past few years.</p>



<p>In order to do that, to get a high-paying software engineering role at a high-tech firm (i.e. at a profit center), one must avoid what Chris calls the <a href="https://medium.com/launch-school/avoiding-the-career-transition-trap-6c2fdc3df6ce">“Career Transition Trap”</a>. Many newbies and aspiring developers think the best route is to simply learn “just enough” to get their foot in the door. Then from that entry-level job, they’ll be able to quickly level up into the more desirable roles in the industry. However, Chris points out that this jump almost never happens and is incredibly difficult, as it’s far easier to make the jump from a non-engineering role to a bad engineering role than it is to make the jump from a bad engineering role to a good engineering role. This might be the most surprising and counterintuitive advice I’ve learned from Launch School but also may be the most valuable advice I’ve learned so far. </p>



<h3 class="wp-block-heading"><strong>Take Your Time and Learn to Depth</strong></h3>



<p>One of the key principles that I&#8217;ve also learned that is important in order to have success at Launch School, and with learning to code in general, is it’s best to avoid placing artificial deadlines on oneself. When evaluating the different paths and programs available to learn how to code, many prospective students give themselves a random timeline of when they want to have completed a learn-to-code program in order to start looking for a job. I believe setting artificial deadlines should be avoided as it often leads to students taking shortcuts when they inevitably hit a roadblock and/or if they feel they aren’t progressing fast enough. The truth is, that learning programming deeply enough to get a highly-paid software engineering job at a top-tier tech firm takes time and the process cannot be rushed. Focus on the long term and trust that the process will be worth it in the end, even if you have to take some side gigs or have a day job in order to pay your bills.</p>



<p>Other programs may briefly introduce you to a programming language over the course of a few weeks, and then immediately dive into frameworks and libraries. Launch School takes the time to help students fully grasp the intricacies and nuances of the entire language by itself. By understanding the language deeply, students can make informed decisions about when and why to use specific frameworks or libraries. Angular, Express, Node, and React should be thought of as solutions to problems, and unless you deeply understand the problems they solve you won’t be able to fully understand if Rails or Sinatra, etc. are the appropriate solutions for your specific situation.&nbsp;</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p><em>“Don’t be a boilerplate programmer. Instead, build tools for users and other programmers. Take historical note of textile and steel industries: do you want to build machines and tools, or do you want to operate those machines?”</em>  <em>-Ras Bodik, CS professor, University of Washington</em></p>
</blockquote>



<p>Looking at the above quote, do you want to be someone who only has superficial knowledge and learns “just enough”? Or, do you want to be someone who understands things at a deeper level and has the knowledge to rapidly advance in your career? That latter is what sets Launch School apart, and it’s not hard to imagine that the level of foundational depth Launch School teaches will lead some future Launch School alumni to eventually create their own frameworks or libraries… hell, maybe even write their own programming language.</p>



<p>Another thing I had to learn was that one shouldn’t set performance-based goals, like giving oneself an artificial deadline to finish a given course, or the entire program, or to join Launch School’s capstone, or to get an awesome high-paying job afterward, etc. As soon as you start daydreaming about the finish line when you’ve just started the race, you’re likely to rush things before you’re ready, causing you to <a href="https://medium.com/launch-school/not-yet-3e55fa5811da">make mistakes like I did</a>. Instead, set mastery-based goals like mastering every single topic covered in each course, regardless of the time it takes to learn the material. All of those good things will come in time, but only if you’ve mastered the material. Focus on putting one foot in front of the other, mastering the current mile of the race. The finish line will be in front of you within no time, but only if you master where you’re at right now.</p>



<h3 class="wp-block-heading">Code With Intent</h3>



<p>Another hugely important skill I learned at Launch School was how to &#8220;code with intent&#8221; as opposed to the “hack and slash” method of coding I used prior to joining the program. LS emphasizes thoughtful design choices, forcing the students to think through the logic of a given code exercise and/or of their application before writing a single line of code. The goal isn’t to merely plan ahead, it’s to help avoid the endless wasted time of running off in the wrong direction with your code due to a lack of proper planning and/or not completely understanding the code’s requirements before you start writing a single line.</p>



<p>Launch School cultivates this meticulous approach to coding and problem-solving through the <a href="https://medium.com/launch-school/solving-coding-problems-with-pedac-29141331f93f">PEDAC</a> (Problem, Examples, Data Structure, Algorithm, and Code) process. Through PEDAC, students are taught first to think deeply about a problem, devise a logical plan, and express it through pseudocode before writing actual code. This attention to detail enables students to understand every line of their application, anticipate outcomes and edge cases, and troubleshoot effectively. The PEDAC method also trains students to be able to clearly articulate their thought processes before, during, and after coding. Effective communication skills require a completely different set of tools than being able to solve complex coding challenges, and both skills are required in order to build a successful career as a developer.</p>



<p>Many tech companies require prospective developer hires to do at least one live coding interview during the hiring process in order to test the candidate’s communication skills and see how intentional the candidate is with their code. In order to prepare for these live coding interviews, Launch School has several live coding assessments throughout the core curriculum where the student will solve a coding challenge in front of a TA. Speaking from experience, it’s incredibly nerve-wracking to live code and/or pair program with a TA or another student, but it’s one of the most important skills Launch School teaches and it will serve students well going forward in their careers. Don’t just aim to become a programming ninja rockstar genius who codes up a masterful, succinct code solution. Instead, if you really want to level up in your career, be someone who can also explain exactly what is happening with your code to other programmers and to key decision-makers at your company.</p>



<h3 class="wp-block-heading">Practice, Practice, Practice</h3>



<p>To solidify knowledge and problem-solving skills, Launch School emphasizes extensive practice. The core curriculum includes hundreds, if not thousands, of coding problems and exercises, both within their curriculum and encouraging additional practice via external resources like Codewars and Edabit. By solving a multitude of problems, students develop their muscle memory for problem-solving, improve their ability to break down complex issues into manageable parts, and become intentional with their code. This extensive practice helps the student build their coding pattern recognition skills to help the student anticipate and solve problems efficiently.</p>



<p>If the student doesn’t immediately know how to solve a given code problem, due to the immense amount of practice and experience gained throughout the core curriculum, the student will know exactly what questions to ask when asking questions to other developers, or when searching for help via Google, StackOverflow, etc. In a bootcamp that only runs for a few weeks, you may be briefly exposed to lots of technical concepts, but you’ll likely not have nearly enough time to develop a strong coding challenge problem-solving ability, as that only comes through patiently spending the time solving hundreds of coding challenges.</p>



<p>It’s through this development of coding challenge pattern matching ability that students will not only gain the ability to anticipate how to solve a problem but will also learn how to anticipate any potential edge cases they need to take into consideration. This includes if the student needs to add test cases and/or guard clauses to handle different types of data (e.g. strings, booleans, integers, null, undefined, arrays, objects, etc.) not explicitly stated in the coding problem’s description.</p>



<p>Any learn-to-code program can teach you how to use the built-in features of a language. One of the coolest parts of Launch School is they have many exercises that force students to solve coding problems without using any of the language’s built-in methods. An example is writing a Javascript function that accomplishes the Array method <em><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/slice">slice()</a></em>, without using any built-in methods. This is important because it forces the student to think through the logic of the built-in method, to think about what is actually occurring under the hood of a method like <em>slice()</em>, in order to write their own custom method from scratch.</p>



<h3 class="wp-block-heading">Mastery-Based Curriculum, Not Project-Based</h3>



<p>Often prospective students ask if the Launch School curriculum will help them create coding projects for their resume or portfolio. Looking back on my experience at Launch School, I know now the program’s focus is at a much deeper level than being focused on projects as the outcome. Inexperienced newbies often look at developer portfolios as a checklist of languages and frameworks to show potential employers what technical skills they have. They mistakenly think that counting the number of frameworks and libraries a coding school teaches tells them anything about the quality of the program.</p>



<p>The reason this is extremely misguided is Launch School’s pedagogy is instead focused on the mastery of fundamentals of software engineering. The goal of Launch School isn’t to hold your hand and show you step-by-step on how to build a project from scratch like an Udemy course does. Instead, the program equips students with the skills to learn any new language or framework in the future independent of hand-holding.</p>



<p>It’s fairly trivial to be exposed to some very basic vanilla Javascript or Ruby and then immediately jump into using a framework or library. Launch School is designed for students to master the language thoroughly and deeply in order for the student to be able to understand why and when a certain library or framework should be used and to understand what problems it solves. Of course, there are some optional projects students are able to build during the core curriculum, and there are some project-based assessments, but the goal is for students to be employable software engineers upon completion of the core curriculum. Once you achieve this level of mastery via the core curriculum, you’ll be able to build your own projects and you won’t need any hand-holding.</p>



<h3 class="wp-block-heading">Support and Community</h3>



<p>A concern prospective students may have about joining a self-paced program is finding other students to study with. It can be challenging for some students to adjust to the fact that every student at Launch School is going at their own pace. Those students who have more experience than you, and/or those students who are faster learners, will progress at a quicker pace, which can be disheartening if you’re not careful.</p>



<p>The good news is at Launch School students are part of an incredibly supportive community. Learning programming can be a slog and a grind, so it helps to have others who are in the same boat as you. While others may progress faster than you, there are always students who are in the same course as you and/or preparing for the same assessment. The Launch School Slack is very active and there are always TAs and other students around to help out when you get stuck and to offer advice and tips.</p>



<p>There are official study groups run by TAs and there are also many student-led study groups. Students often also message each other and share resources and/or meet up to study together. You can of course do the entire core curriculum on your own while never interacting with any other students, but I encourage everyone to meet other students who are in the same course and to study with them. It makes the experience far more rewarding.</p>



<h3 class="wp-block-heading">How Long Will It Take?</h3>



<p>At the beginning of this article, I mentioned how the core curriculum took me 1,718 hours of studying at Launch School over 3.5 years. If you have more experience than me, and/or if you’re able to study full-time with zero breaks and zero time off for travel and/or work, you’ll likely progress much faster than I did. Those with extensive prior programming experience who are able to study full-time may finish the core curriculum in less than a year. The average duration seems to be roughly 1,000-1,500 hours of studying over about 12-18 months.</p>



<p>Due to the nature of my workload at the startup I work for, there were several weeks where I had to spend less time studying due to having to pick up the slack when our support team was shorthanded for several months, or because I was involved with hiring potential new team members, etc. I still managed to push forward and tried to at the very least get the bare minimum ten hours of studying per week, even if I was slammed with work.</p>



<p>Because of this, the core curriculum took me much longer than I anticipated, but I’m glad that I took my time and focused on the end goal. Having at least some income coming in the door helped keep my stress levels lower than if I wasn’t working at all and studying full-time. And I’m eternally grateful to Streak’s CEO Aleem and my manager Andrew for their endless patience and support during the past few years.</p>



<p>I encourage any future students to not worry about how long the program will take, and instead to trust the process. It’ll be worth it in the long run.</p>



<h3 class="wp-block-heading">Standing Out In A Crowded Market</h3>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p><em>“It’s lonely at the top, but it’s extra crowded at the bottom” -Earl Stevens</em></p>
</blockquote>



<p>One thing I’ve seen following this industry over the past several years is how insanely competitive the job market is for entry-level development roles. There are endless stories on different subreddits like r/learnprogramming and r/codingbootcamp of newbie developers having an incredibly difficult time finding their first programming job. As of fall 2023, many recent bootcamp cohorts are placing very few of their graduates in software engineering roles.</p>



<p>This has led to a large amount of frustration, which compounds when endless news articles are written about there being an apparent shortage of software engineering talent. If such a shortage exists, why do new programmers have such a difficult time getting hired? The truth is that there is a decreasing number of available entry-level or junior-level software engineering roles, while at the same time, there’s an increasingly growing number of aspiring entry-level developers. The downside of this is aspiring developers need to learn much more and learn far deeper in order to get their first engineering roles. Simply learning some basic HTML, CSS, and Javascript and that being enough to get an entry-level “web developer” job is no longer possible.</p>



<p>The job market for more senior-level talent has the inverse problem: there’s a huge demand for higher-level software engineers but a huge shortage of experienced engineers who can code at the level these higher-level job openings require. Knowing this, what should aspiring developers do in order to maximize their chances of getting hired in order to succeed in the current market?</p>



<p>It’s not enough to spend twelve weeks, or even just a few months, learning to code and expecting to obtain a high-paying job at a tech company. The smallish, cookie-cutter projects produced by typical bootcamp grads are no longer enough to impress hiring managers in this market. If you want to stand out in this insanely competitive environment, you will not only have to outwork everyone else, but you will also need to work smarter. Prospective developers will need to spend time learning the fundamental programming concepts deeply to mastery, spend hundreds of hours solving coding challenges, and learn how to read the official documentation, all while learning how to communicate their thought processes out loud during live coding challenges. An in-depth program like Launch School is designed to help prepare students to stand out and thrive in this insanely brutal job market.</p>



<p>You can, of course, use other resources to learn to code, or learn to code through reading books and/or reading through a language’s official documentation. What sets Launch School apart from every other resource or program on the market is their assessments which serve as benchmarks to ensure if you’ve truly mastered the material or not. Back when I was doing some of the Odin Project and a few different Udemy courses before I started Launch School, I did learn a decent amount. However, the lack of assessments when using those resources meant that I had no way of knowing if I had truly learned the material presented at a sufficient level. Launch School’s insanely difficult assessments forced me to learn all of the concepts at a level far deeper than I ever thought possible. The assessments also forced me to utilize circular learning and go through each course&#8217;s material sometimes three or four times to ensure I had fully mastered all of the concepts covered. Because of those assessments, I’m a far better coder than I ever would’ve been had I not gone through Launch School’s core curriculum.</p>



<h3 class="wp-block-heading">What Next?</h3>



<p>Now that I’ve finished the core curriculum, I’m hoping to do Launch School’s <a href="https://launchschool.com/capstone">capstone program</a> in the spring of 2024. The capstone is full-time and lasts about four months, and is considered as rigorous as doing a grad school thesis or a Ph.D. dissertation. Since finishing the core curriculum in June, I’ve been doing some extra studying and learning on my own in order to prepare.</p>



<p>Even if you’re not able to do the capstone, I still 100% recommend doing the core curriculum based on everything else I’ve said in this article. By the time you finish core, you’ll be a very competent programmer and will be able to continue your learning journey and/or build your own projects with zero hand-holding.</p>



<p>I also have a long list of additional topics I’d like to study in the future, even after I get my first SWE job. Since I don’t have a CS background, I’d like to continue to learn and build upon the knowledge I learned during Launch School by learning some of the foundational Computer Science topics. I also may still decide to do an MSCS at some point in the future in a few years, which I know will be much less difficult for me having finished the core curriculum.</p>



<p>No matter the path I choose, I know I’m now in a position to succeed due to the level of depth I learned while a student at Launch School.</p>



<h3 class="wp-block-heading">Final Thoughts</h3>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p><em>“Everyone holds his fortune in his own hands, like a sculptor the raw material he will fashion into a figure. But it’s the same with that type of artistic activity as with all others: We are merely born with the capability to do it. The skill to mold the material into what we want must be learned and attentively cultivated.” —Goethe</em></p>
</blockquote>



<p>Choosing Launch School has been one of the best decisions I&#8217;ve made for my software engineering journey. Its emphasis on mastery, deliberate practice, and deep understanding has transformed me into a more confident and well-rounded developer. The Launch School curriculum&#8217;s focus on fundamentals, attention to detail, and community support make it a standout program in the crowded landscape of coding education. If you are passionate about building a solid foundation in software engineering and are willing to commit the necessary time and effort, I highly recommend Launch School.</p>



<p>Remember, Launch School isn&#8217;t just about getting a job—it&#8217;s about building a successful and fulfilling career that will endure for years to come. So, take the slow path, embrace the journey, and strive for the mastery of software engineering. I promise you, that if you put in the hours on a consistent basis, stay disciplined, and do work, eventually this insanely difficult skill of learning programming will start to come together. You likely won’t be a mythical 10x programmer overnight, but slowly you’ll start to suck a little bit less and less each day. And eventually, some of the programming concepts you previously stressed out about will start to become a little easier, until one day they become second nature.</p>



<p>Completing Launch School’s core curriculum is the single hardest thing I’ve ever accomplished in my life, but also the most fulfilling. It forced me to learn an incredible amount of self-discipline, which has paid off as I went from having zero self-confidence as a developer to now having zero doubts about my skills. The most important thing is today I know I can learn any topic in this industry, given enough time. If you want to become a software engineer, I encourage you to take this path as well!</p>



<h3 class="wp-block-heading">Notes</h3>



<ul class="wp-block-list">
<li>Launch School doesn’t have an ISA for the core curriculum and charges only a flat rate of $199 USD per month. Launch School does have an ISA for their optional <a href="https://public.launchschool.com/capstone">Capstone program</a> which can be done after completion of the core curriculum.</li>



<li>The quote from Professor Ras Bodik was borrowed from <a href="https://blog.bradfieldcs.com/in-2017-learn-every-language-59b11f68eee">this incredible article</a>.</li>
</ul>



<h3 class="wp-block-heading">Further Reading</h3>



<ul class="wp-block-list">
<li><a href="https://www.launchschool.com" type="link" id="launchschool.com">launchschool.com</a></li>



<li><a href="https://launchschool.com/pedagogy">Launch School&#8217;s Pedagogy</a></li>



<li><a href="https://launchschool.com/mastery">Mastery-Based Learning</a></li>



<li><a href="https://public.launchschool.com/capstone">Launch School&#8217;s capstone program</a></li>



<li><a href="https://medium.com/launch-school/were-not-a-bootcamp-c33901412c38">Launch School is Not a Bootcamp</a></li>



<li><a href="https://medium.com/launch-school/solving-coding-problems-with-pedac-29141331f93f">Solving Coding Problems With PEDAC</a></li>



<li><a href="https://medium.com/launch-school/the-dangers-of-learning-just-enough-6b7d66393205">The Dangers of Learning Just Enough</a></li>



<li><a href="https://medium.com/launch-school/avoiding-the-career-transition-trap-6c2fdc3df6ce">Avoiding the Career Transition Trap</a></li>



<li><a href="https://ozwrites.com/masters/">The case against CS master’s degrees</a></li>



<li><a href="https://blog.alinelerner.com/how-different-is-a-b-s-in-computer-science-from-a-m-s-in-computer-science-when-it-comes-to-recruiting/">How different is a B.S. in Computer Science from an M.S. when it comes to recruiting?</a></li>
</ul>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">3929</post-id>	</item>
		<item>
		<title>Don’t Learn a Programming Language. Learn Software Engineering</title>
		<link>https://www.westonludeke.com/dont-learn-a-programming-language-learn-software-engineering/</link>
		
		<dc:creator><![CDATA[Weston]]></dc:creator>
		<pubDate>Sun, 16 Apr 2023 17:53:11 +0000</pubDate>
				<category><![CDATA[code]]></category>
		<guid isPermaLink="false">https://www.westonludeke.com/?p=3887</guid>

					<description><![CDATA[Aspiring programmers who are looking to eventually build a career as a Software Engineer frequently ask which programming language they should select to learn (Ruby? Javascript? Python?). They often get lost in the weeds, endlessly debating minutiae about which language is best to begin their learn-to-code journey.&#160; Noobs who’ve never previously written a single line [&#8230;]]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image size-large is-resized"><img decoding="async" src="https://www.westonludeke.com/wp-content/uploads/2023/04/mastery-2-1024x683.jpeg" alt="" class="wp-image-3890" width="840" height="560" srcset="https://www.westonludeke.com/wp-content/uploads/2023/04/mastery-2-1024x683.jpeg 1024w, https://www.westonludeke.com/wp-content/uploads/2023/04/mastery-2-656x437.jpeg 656w, https://www.westonludeke.com/wp-content/uploads/2023/04/mastery-2-768x512.jpeg 768w, https://www.westonludeke.com/wp-content/uploads/2023/04/mastery-2-1536x1024.jpeg 1536w" sizes="(max-width: 840px) 100vw, 840px" /><figcaption class="wp-element-caption">A master and his apprentice. via <a href="https://unsplash.com/@rankandfiledostoevsky">@rankandfiledostoevsky</a> on Unsplash used under a Creative Commons license.</figcaption></figure>



<p>Aspiring programmers who are looking to eventually build a career as a Software Engineer frequently ask which programming language they should select to learn (Ruby? Javascript? Python?). They often get lost in the weeds, endlessly debating minutiae about which language is best to begin their learn-to-code journey.&nbsp;</p>



<p>Noobs who’ve never previously written a single line of code also sometimes get caught up worrying about which programming language is popular and if there are enough jobs available in a given language. While these aren’t unimportant and useless things to think about, I believe they’re irrelevant at the beginner stage of the learning journey.</p>



<p>Instead of being overly worried about which language is the best to learn, I recommend aspiring developers take a step back and think about things at a more macro level. Don’t try to become a <em>“Javascript Developer”</em>; instead reframe your focus to become a <em>“Software Engineer”</em>. The former is someone good at using only one tool. The latter is a master craftswoman who has the foundational programming knowledge to be language agnostic, that is, to be able to use <em>any</em> language or tool in her toolbox to accomplish a given goal or task.</p>



<p>Do you want to become an expert at hammering a nail into a block of wood? Or, do you want to learn how to build an entire house from the ground up? The former is someone whose ability is limited to only the capabilities of that one tool. The latter has the higher-level conceptual knowledge to pick up new tools on the fly and will use whichever tool is best to get the job done.</p>



<p>Instead, an aspiring developer who has written next to zero lines of code should be more focused on learning software engineering by initially selecting one language to learn at the start and learning that language very deeply. Learn that one programming language so well that there are (almost) no surprises with the language left. Once you’ve mastered that first language, including its syntax, quirks, and oddities, it will be much easier to pick up a second language.</p>



<h3 class="wp-block-heading"><strong>Higher-Level Thinking</strong></h3>



<p>By having a more limited mindset that is focused on being just a <em>“Python developer”</em> for example, if you come across an awesome job opening at a cool company that is hiring Ruby developers, you’ll be mentally counting yourself out for those roles and you won’t even bother considering applying.</p>



<p>Instead, be someone that knows the fundamentals of software engineering so deeply that you have the confidence to be able to learn any additional programming language as needed. This person would see a job opening asking for experience in a language they have no experience with and will still send an application. They would do this knowing that they’d be able to articulate to the company’s hiring team that they have no doubt in their ability to quickly learn the syntax of the new language, or any additional languages as needed.</p>



<p>Instead of worrying about which programming language is popular, think about how to learn the higher-level skills that help make a great software engineer great: Learn how to write detailed pseudocode before you start coding up a new application. Learn how to break down complicated problems into smaller chunks so you understand everything that’s happening in an individual function or across an entire application line-by-line. Learn how to read a language’s official documentation. And finally, learn how to ask questions on forums like StackOverflow the right way so you receive helpful responses from more experienced coders.</p>



<p>Programming languages come and go in popularity, and frameworks and libraries change even faster. If your knowledge isn’t siloed into one language, your career hopefully won’t be limited as the tech industry rapidly shifts and evolves away from the existing languages you know. You’ll still have the fundamentals of Software Engineering to carry over to new languages that you’ll be learning in the future.&nbsp;</p>



<h3 class="wp-block-heading"><strong>Okay, But What Language Should I Choose?</strong></h3>



<p>Now that I’ve mentioned that total beginners shouldn’t even worry about the popularity of a language, they still need to use some other criteria to select a language to learn. At this stage, the aspiring developer likely doesn’t have the confidence yet that they’ll ever have the capabilities to ever become a professional developer. It still seems like a huge, insurmountable mountain to climb.</p>



<p>Instead of focusing on the popularity of a given language, I recommend instead focusing on selecting a language that is known for being relatively easy for complete beginners to learn. From the research I’ve done over the years, if you’re considering a career in web application development, both Python and Ruby are generally considered beginner-friendly languages for total noobs. However, don’t take my word for it: Create a free account on a site like Codecademy and play around with a few different languages and see which syntax style you like the best.</p>



<h3 class="wp-block-heading"><strong>Learn the Basics, Then Master The Fundamentals</strong></h3>



<p>Once you’ve chosen your first language, and played around with a tool like Codecademy to learn some basic syntax, you can then choose to learn even deeper if you’d like to become a professional developer.</p>



<p>A few years ago, I learned some basic HTML and CSS, followed by dipping my toes into Ruby and Javascript. Even though I knew some syntax, I could still barely do much in either language. I did some digging and researched some different online resources to continue my journey to become a paid software engineer. After testing out various learning options like FreeCodeCamp, The Odin Project, and a few Udemy courses, I eventually found the program which would change my life, Launch School.</p>



<p>One of the biggest reasons I enrolled at Launch School was because of the program’s focus on teaching the fundamentals of software engineering. The program has completely shifted my mentality to think at a higher level using the concepts outlined earlier in this article. It’s helped me reframe my thinking from, <em>“I’m learning the Ruby programming language”</em> to <em>“I’m learning Software Engineering using the Ruby language”</em>. See the difference?&nbsp;</p>



<p>Launch School’s core curriculum has two tracks, one for Ruby and one for Javascript. When I enrolled in the program in January 2020 I chose the Ruby track as I thought it was a little easier for me to understand given that I had so little prior programming experience. Interestingly enough, even though Launch School calls it a “Ruby track”, in the latter portion of that track students also learn the Javascript programming language very deeply (perhaps it should be called the “Ruby and Javascript track”?).</p>



<p>While there are some differences in the syntax and built-in methods between the two languages, the higher-level programming concepts and problem-solving skills that I learned using Ruby earlier in the curriculum are very similar to those in Javascript. When I finished the Ruby portion of the core curriculum and began the Javascript portion of the curriculum, I was able to quickly adjust because Launch School had already taught me many of the fundamentals of Software Engineering. I already knew how to read through the official Ruby documentation, how to break down complicated problems into smaller pieces, and how to utilize resources such as StackOverflow and different technical blogs when I get stuck. Because of this, when the curriculum forced me to use Javascript, I was able to apply those fundamentals to the Javascript language and merely had to pick up the nuances of how the syntax differed between the two languages.</p>



<p>This mental model of learning the fundamentals of Software Engineering is incredibly useful as I know those foundational skills apply to any other language I may want to learn in the future (such as Python, Java, Golang, etc).</p>



<h3 class="wp-block-heading">Final Thoughts</h3>



<p>If you’ve read this far and are <em>still</em> looking for someone to tell you which Launch School track to take, my advice is: If you have no prior programming experience or very little experience, do the Ruby track. The Ruby track is two courses longer than the Javascript track, but you’ll have the benefit of learning both Ruby and Javascript, and you’ll hopefully have a deep enough understanding of the fundamentals of programming to be able to learn some of the similarities and differences between the two languages, which will help you become a better developer. If you’ve already learned one language before and/or if you’ve already worked as a web developer in the past, go ahead and do the Javascript track. Remember, this is just my two cents, other students or staff members may tell you otherwise.</p>



<p>Note: This is a very opinionated post from someone who is only a student and who has never formally been paid to write a single line of code (as of April 2023, I&#8217;m almost finished with Launch School&#8217;s core curriculum). I reserve the right to change my mind on this topic in the future. Also, should you ask twelve different professional software engineers for their opinion on this topic, you&#8217;re likely to receive fifteen different opinions. So, don’t take my word for it; go out there and do your own research.</p>



<p>Hopefully, this post helps newbies start thinking about the topic in a different way than they ever have before.</p>



<h3 class="wp-block-heading"><strong>Resources</strong>:</h3>



<p>Learn the fundamentals of Software Engineering at Launch School: <a href="https://www.launchschool.com" data-type="URL" data-id="https://www.launchschool.com">launchschool.com</a>. </p>



<p>Bradfield CS founder Oz Nova writes more about this very topic on his blog: <a href="https://blog.bradfieldcs.com/in-2017-learn-every-language-59b11f68eee">https://blog.bradfieldcs.com/in-2017-learn-every-language-59b11f68eee</a></p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">3887</post-id>	</item>
		<item>
		<title>My time at Launch School (so far)</title>
		<link>https://www.westonludeke.com/my-time-at-launch-school-so-far/</link>
		
		<dc:creator><![CDATA[Weston]]></dc:creator>
		<pubDate>Tue, 07 Mar 2023 17:54:47 +0000</pubDate>
				<category><![CDATA[code]]></category>
		<guid isPermaLink="false">https://www.westonludeke.com/?p=3879</guid>

					<description><![CDATA[In January 2020, I embarked on a journey with Launch School to pursue my dream of becoming a Software Engineer. Three years later, as I near the end of the program (I’m currently in the final course as of March ‘23), I can confidently say that it has been one of the most fulfilling and [&#8230;]]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="683" src="https://www.westonludeke.com/wp-content/uploads/2023/03/mohammad-rahmani-8qEB0fTe9Vw-unsplash-1024x683.jpg" alt="" class="wp-image-3881" srcset="https://www.westonludeke.com/wp-content/uploads/2023/03/mohammad-rahmani-8qEB0fTe9Vw-unsplash-1024x683.jpg 1024w, https://www.westonludeke.com/wp-content/uploads/2023/03/mohammad-rahmani-8qEB0fTe9Vw-unsplash-656x437.jpg 656w, https://www.westonludeke.com/wp-content/uploads/2023/03/mohammad-rahmani-8qEB0fTe9Vw-unsplash-768x512.jpg 768w, https://www.westonludeke.com/wp-content/uploads/2023/03/mohammad-rahmani-8qEB0fTe9Vw-unsplash-1536x1024.jpg 1536w, https://www.westonludeke.com/wp-content/uploads/2023/03/mohammad-rahmani-8qEB0fTe9Vw-unsplash-2048x1365.jpg 2048w, https://www.westonludeke.com/wp-content/uploads/2023/03/mohammad-rahmani-8qEB0fTe9Vw-unsplash-750x500.jpg 750w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">image via <a href="https://unsplash.com/photos/8qEB0fTe9Vw">afgprogrammer</a> on Unsplash, used under a Creative Commons license</figcaption></figure>



<p>In January 2020, I embarked on a journey with Launch School to pursue my dream of becoming a Software Engineer. Three years later, as I near the end of the program (I’m currently in the final course as of March ‘23), I can confidently say that it has been one of the most fulfilling and rewarding experiences of my life.</p>



<p>Before joining LS, I was contemplating the idea of going back to school for a Post-Bacc in Computer Science or pursuing an MSCS. I also looked at several boot camps and various online learn-to-code resources (such as the Odin Project and FreeCodeCamp). However, LS&#8217;s self-paced program with its flexibility and focus on mastery of the fundamentals won me over, especially as I had been working full-time until recently and didn&#8217;t want to leave my day job (as of this writing I&#8217;m working part-time).</p>



<p>Being on the slow path as a student has been a challenge, but being self-paced has allowed me to deal with any personal things that have come up during my studies. LS&#8217;s flexibility has also allowed me to go at my own pace and has allowed me to adjust my schedule as needed. The program&#8217;s focus on mastery of the fundamentals of software engineering has taught me how to learn things deeply and thoroughly to a level I never previously thought possible.</p>



<p>I was a subpar student in college in an unrelated field (marketing), so a big part of my LS journey has been learning how to learn, while also helping me deconstruct and rebuild my studying habits. The program&#8217;s emphasis on understanding the fundamentals and building a strong foundation has given me the tools to become a confident and competent programmer. I have not only gained mastery over the languages and technologies taught in the program (such as Ruby and Javascript), but also the ability and confidence to learn new languages and skills in the future.</p>



<p>Most importantly, LS has given me the confidence to pursue my dream of becoming a Software Engineer. Today, I know I have the skills and knowledge to succeed in this field, and I&#8217;m excited about the opportunities.</p>



<p>In conclusion, my time at LS has been an incredible learning experience. It has challenged me, taught me how to learn, and given me the skills and confidence to pursue my dream career. I&#8217;m eternally grateful for the opportunity to participate in this program and look forward to what the future holds!</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">3879</post-id>	</item>
		<item>
		<title>From Zero to Advanced: How I Drastically Improved My Spanish Listening Skills After Only 100 Hours</title>
		<link>https://www.westonludeke.com/from-zero-to-advanced-how-i-drastically-improved-my-spanish-listening-skills-after-only-100-hours/</link>
		
		<dc:creator><![CDATA[Weston]]></dc:creator>
		<pubDate>Fri, 20 Aug 2021 20:12:22 +0000</pubDate>
				<category><![CDATA[languages]]></category>
		<guid isPermaLink="false">https://www.westonludeke.com/?p=3853</guid>

					<description><![CDATA[After endless hours of studying Spanish over the past several years, I was frustrated in late 2020 that I could still barely understand anyone when they would speak to me in the language. I had to constantly ask them to repeat themselves and conversations were very painful and slow. When different language institutes give exams [&#8230;]]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image size-large is-resized"><img loading="lazy" decoding="async" src="https://www.westonludeke.com/wp-content/uploads/2021/08/bellas_artes-1024x683.jpeg" alt="" class="wp-image-3855" width="840" height="560" srcset="https://www.westonludeke.com/wp-content/uploads/2021/08/bellas_artes-1024x683.jpeg 1024w, https://www.westonludeke.com/wp-content/uploads/2021/08/bellas_artes-656x437.jpeg 656w, https://www.westonludeke.com/wp-content/uploads/2021/08/bellas_artes-768x512.jpeg 768w, https://www.westonludeke.com/wp-content/uploads/2021/08/bellas_artes-750x500.jpeg 750w, https://www.westonludeke.com/wp-content/uploads/2021/08/bellas_artes.jpeg 1050w" sizes="auto, (max-width: 840px) 100vw, 840px" /><figcaption>Palacio de Bellas Artes, Ciudad de México &#8211; via <a href="https://unsplash.com/@david_carballar">@david_carballar</a> on Unsplash used under a Creative Commons license</figcaption></figure>



<p>After endless hours of studying Spanish over the past several years, I was frustrated in late 2020 that I could still barely understand anyone when they would speak to me in the language. I had to constantly ask them to repeat themselves and conversations were very painful and slow.</p>



<p>When different language institutes give exams to test a student’s fluency in a given language, they typically test four different skills: reading, writing, speaking, and listening. Because my focus up to that point had mostly been on learning new vocab and reviewing flashcards, I could recognize a lot of Spanish words when I would read them. However, I could barely understand when people would talk to me in Spanish or when hearing it on the tv or the radio. I knew tons of vocab and phrases, and even though I knew how to pronounce them fairly correctly, my brain didn’t register when hearing them spoken by native speakers. It all came at me too fast and my brain would just shut down once it realized it didn’t understand what was being said.</p>



<h2 class="wp-block-heading"><strong>Understanding the Problem</strong></h2>



<p>Eventually, the lightbulb clicked on and I came to the realization that my problem was that I had spent next to zero time working specifically on improving my listening skills. I realized that I needed to spend a lot of time improving my listening ability and not just reviewing flashcards with no audio input. Like any skill we want to improve in life, I simply needed to focus on spending the hundreds of hours required to improve my listening ability. I took one of those free, unofficial online fluency tests last year, and it said that I was at a B1 level in Spanish. Though, in reality, I knew my listening skills were likely closer to A1, or even A0, or worse!</p>



<p>One of the biggest problems when trying to find good resources to listen to is that most of the resources are geared towards native speakers and those who are already fluent. Many people who haven’t successfully mastered a new foreign language as an adult will give advice like, <em>“start watching movies in Spanish”</em> or <em>“listen to a bunch of music from Mexico”.</em> While those are good recommendations for a student who is already at an advanced level in their listening ability, it is essentially useless if you’re a complete beginner. Those methods are simply too advanced for complete noobs like I was.</p>



<h2 class="wp-block-heading"><strong>A Life-Changing Recommendation</strong></h2>



<p>After realizing I needed to change my studying focus, I started doing some research on how to specifically improve my listening skills as a beginner, reading several posts across a few different subreddits geared around language learning like <a href="https://www.reddit.com/r/languagelearning/">r/languagelearning</a>, <a href="https://www.reddit.com/r/learnspanish">r/learnspanish</a>, and <a href="https://www.reddit.com/r/learnspanish">r/spanish</a>. Eventually, I came across a Reddit comment that recommended checking out the Dreaming Spanish website and YouTube channel.</p>



<p>Upon visiting their website, I discovered that <a href="https://www.dreamingspanish.com/" data-type="URL" data-id="https://www.dreamingspanish.com/">Dreaming Spanish</a> makes videos specifically for students who are learning the Spanish language. Their website also very helpfully separates their videos into four different levels: super beginner, beginner, intermediate, and advanced. This allows the learner to choose their level to have the site filter to show only the videos that are at the student’s current level.</p>



<p>While searching for random videos on YouTube can be frustrating as it’s hard to know how difficult the video will be, being able to use a site that has already pre-filtered their videos into different levels based on their difficulty is incredibly helpful.</p>



<h2 class="wp-block-heading"><strong>Beginning My Dreaming Spanish Journey</strong></h2>



<p>Roughly around a year ago, September 2020 or so, I created a free account on the Dreaming Spanish (will shorten to DS from now on) website and started watching their free content. I quickly became hooked due to the high quality of the content and how helpful the videos are for new Spanish learners. The site also tracks your progress so I can see how many hours I’ve spent watching and listening to videos on their website.</p>



<p>Another cool feature that I quickly discovered is that DS doesn’t put subtitles on their videos. Admittedly, I was confused at first by this, but then I quickly realized that I needed to spend time actually <em>listening</em> and not reading. I needed to train my brain, to force it to focus on the new sounds and words I was hearing and not on reading them. There are no subtitles in real life!</p>



<p>I started watching and listening to their videos at the beginner level, which are very slow but my listening skills were very poor. I forced myself to focus and to pay attention. Something else DS does that is super helpful at this level is that many beginner videos are done with the aid of a whiteboard. Site founder Pablo uses the whiteboard in many beginner videos to draw different images while talking and/or telling a story. He is also on camera at the same time using many different hand gestures to communicate. Both of these tools are super helpful in the aid of improving one’s listening ability as there is no English being spoken in the videos.</p>



<h2 class="wp-block-heading"><strong>Making Progress</strong></h2>



<p>After endless hours at the beginner level, I started to push myself out of my comfort zone and started to watch some intermediate videos. This next-level features videos from many different guides (the term used by DS for the different native Spanish speakers who record videos for the website) who all come from different backgrounds.</p>



<p>What’s really great about DS having multiple different guides is that many are from different Spanish-speaking countries. Founder Pablo Román is from Spain as are a few other guides, but there are also guides from México, Colombia, Chile, and Argentina amongst others. This gives students the opportunity to hear different accents and different Spanish terms from across the diaspora, not to mention to learn about cultural differences.</p>



<p>After spending several dozen hours listening to videos at the intermediate level, I eventually started watching some advanced videos. As of now (Aug 2021), I’m currently watching a mix of intermediate and advanced level content. Some of the guides are easier for me to understand than others, and I don’t completely understand everything that’s being said in all of the videos, but I’ve made a ton of progress.</p>



<h2 class="wp-block-heading"><strong>100 Hours Completed</strong></h2>



<p>Recently, I reached the mark of having watched 100 hours of videos on DS. I still have a long way to go until I’m able to understand Spanish at the level of fluency. But, after putting in 100 hours of hard work, I&#8217;ve made a ton of progress and greatly improved my listening abilities by leaps and bounds since before starting DS.&nbsp;</p>



<p>I now struggle a lot less during my <a href="https://www.italki.com/">italki</a> lessons and the conversations flow much more fluidly. I’m also able to pick up a lot more in my daily life when I hear native Spanish speakers talk to one another or to me. I can pick up more of what&#8217;s being said when I listen to local radio stations in Spanish, and I’m even able to understand some other random YouTube videos in Spanish (if they’re not speaking too fast).</p>



<p>Most Spanish sounds similar to me in that I’m not able to discern the differences between the Spanish speakers’ locations yet based on their accent alone. Spanish from Latin America sounds almost the same to me as does Peninsular Spanish, but my focus at the moment is more on comprehending the language as a whole as opposed to worrying about specific regional differences. Although, because I’m around a lot of native Mexican Spanish speakers, I am sometimes able to discern that a speaker is a native of Mexico.</p>



<p>Trying to watch television or movies in Spanish is still mostly too difficult for me. I recently watched “<a href="https://www.netflix.com/title/80215500">Fariña</a>” on Netflix (titled “Cocaine Coast” in the US) and had trouble understanding a lot that was being said. Partly this was due to a lot of the Galician language being spoken instead of Spanish during parts of the series, but also a lot of the Spanish that was spoken was spoken incredibly fast. The good news is there were some parts of the Spanish dialog that I <em>did</em> understand and that was pretty cool! Especially, since there’s no way I would’ve picked up on any of it a year ago.</p>



<p>I believe I created my account on Dreaming Spanish in September of 2020 and reached the 100-hour mark in August of 2021, so it took me roughly eleven months of studying. A student with more free time will be able to progress much faster, but the most important factor that will determine one’s success is consistency over a long period of time. High performance in any skill is achieved as a result of long-term consistency and the discipline of studying/practicing a little bit each day, not due to intense effort on a random, infrequent basis.</p>



<p>Also, I should mention I eventually decided to upgrade my DS account to the paid tier of $7 USD per month. The paid plan gives me access to many more videos and also allows me to support the Dreaming Spanish team for their hard work.</p>



<h2 class="wp-block-heading"><strong>Learning Tips and Setting Goals</strong></h2>



<p>The reason why I’ve made so much progress with Dreaming Spanish is the website is designed around the principles of <a href="https://www.sk.com.br/sk-krash-english.html">Comprehensive Input</a>. I’m not going to spend time explaining how this concept works, but I highly recommend that other students do research on the topic as it is one of the single most important concepts for successful foreign language acquisition.</p>



<p>If I was starting a new foreign language from scratch, I would first learn some basic vocab using free tools such as <a href="https://www.duolingo.com/">Duolingo</a> and <a href="https://www.memrise.com/">Memrise</a>. I would also use a good spaced repetition software tool such as Anki to make flashcards. Then after learning some basics of vocabulary and grammar, I would then move into focusing on Comprehensible Input. If the target language is not Spanish, I would try to find a resource similar to Dreaming Spanish for the desired language.</p>



<p>Last, I would recommend defining a clear and attainable goal. Do you want to be conversationally fluent in the foreign language you’re studying? Or, do you want to be able to take a university class that is completely taught in the target language, and in a native country? Or, do you not care about conversations and you’d simply like to be able to read novels or books in the target language?</p>



<p>Because my biggest focus right now is on attaining conversational fluency, Comprehensible Input tools like Dreaming Spanish are incredibly useful for me. If your goals differ then the tools that work best for you will likely differ as well.</p>



<h2 class="wp-block-heading"><strong>Going Forward</strong></h2>



<p>I still have my work cut out for me as I continue ahead along my journey towards fluency and mastery of the Spanish language. But, I’m very proud of the progress I’ve made so far. I wish you the best of luck on your language learning journey!</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">3853</post-id>	</item>
		<item>
		<title>Not Yet</title>
		<link>https://www.westonludeke.com/not-yet/</link>
		
		<dc:creator><![CDATA[Weston]]></dc:creator>
		<pubDate>Tue, 06 Apr 2021 17:47:57 +0000</pubDate>
				<category><![CDATA[code]]></category>
		<guid isPermaLink="false">https://www.westonludeke.com/?p=3813</guid>

					<description><![CDATA[“If you aren&#8217;t getting rejected on a daily basis, your goals aren’t ambitious enough” -Chris Dixon, partner at Andreessen Horowitz and serial entrepreneur Welp, it happened. I crashed and burned on a Launch School assessment and I received my first “Not Yet” score, specifically on the RB129 interview assessment. For context, Launch School, very smartly [&#8230;]]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="654" src="https://www.westonludeke.com/wp-content/uploads/2021/04/success-1024x654.jpeg" alt="" class="wp-image-3814" srcset="https://www.westonludeke.com/wp-content/uploads/2021/04/success-1024x654.jpeg 1024w, https://www.westonludeke.com/wp-content/uploads/2021/04/success-656x419.jpeg 656w, https://www.westonludeke.com/wp-content/uploads/2021/04/success-768x490.jpeg 768w, https://www.westonludeke.com/wp-content/uploads/2021/04/success-750x479.jpeg 750w, https://www.westonludeke.com/wp-content/uploads/2021/04/success.jpeg 1084w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption>image via <a href="https://unsplash.com/@theblowup">the blowup</a> on Unsplash, used under a Creative Commons license</figcaption></figure>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><em>“If you aren&#8217;t getting rejected on a daily basis, your goals aren’t ambitious enough”</em></p><cite>-Chris Dixon, partner at Andreessen Horowitz and serial entrepreneur</cite></blockquote>



<p>Welp, it happened. I crashed and burned on a <a href="https://launchschool.com/">Launch School</a> assessment and I received my first “Not Yet” score, specifically on the RB129 interview assessment. For context, Launch School, very smartly and helpfully, doesn’t label a “not passing” assessment as having the grade of “Failed”, but instead as being “Not Yet”.</p>



<p>To be honest, learning software engineering through Launch School is the single hardest thing I’ve ever done. Launch School is designed around <a href="https://launchschool.com/mastery">Mastery-Based Learning</a>, which is incredibly difficult by design. It’s not possible for a student to learn “just enough to get by” in order to pass each course. You cannot wing it and expect to have learned the material to mastery. You will not pass the assessments if you’re “fuzzy” and not 100% clear on any of the concepts or material. No more doing what many college kids do and ignore the material for three months, then try to cram it all in the night before the final. Learning to mastery is an entirely different ballgame.</p>



<p>After receiving the “Not Yet” score, I had to reframe my mindset to tell myself that “Not Yet” doesn’t mean that I failed the exam or that I’m personally a failure. It also doesn’t mean “never” (i.e. that I’ll never be able to learn the material). It simply means “I’m not ready yet” or “I haven’t reached mastery of the material yet”. The “yet” is the single most important part of “Not Yet”.</p>



<h3 class="wp-block-heading">Separate Your Ego From Your Code</h3>



<p>I also had to tell myself that a score of “Not Yet” is not a reflection of who I am personally, nor of who I am at the moment as a programmer. And most importantly, it is not a reflection of my potential to become a professional software developer in the future. It simply means I was not ready yet for the next step, which is to continue on to the next course in the program. Deep down, I knew that I understood the material and would one day pass the assessment, even if that day was not the day I would pass. I told myself that I will pass this assessment even if it takes me multiple attempts.</p>



<p>Doing anything in life that is incredibly ambitious will be stressful because it requires a superhuman level of patience, discipline, dedication, hard work, and sacrifice. Because of that, it can feel absolutely soul-crushing to receive a “Not Yet” on an assessment. It’s easy to feel as if the countless hours spent studying and being stressed out and anxious weren’t worth it. But, I have to remind myself that the time spent wasn’t wasted. “Not Yet” just means I needed to spend some more time with the material and to really make sure I’ve truly mastered the concepts.</p>



<h3 class="wp-block-heading">Be Proud of Your Progress So Far</h3>



<p>It’s easy to get lost down in the weeds of the day-to-day grind, but I had to take a step back and remind myself that I’ve been trying to learn to code during a global pandemic. Not to mention trying to string together 15 hours per week studying while working a full-time job at a fast-paced startup in Silicon Valley. Not to mention being on a team of three at work and having my other two teammates quit a year ago, within a few weeks of each other. Then, having to not only cover their work but interview over two dozen potential replacement candidates.</p>



<p>Not to mention dealing with the threat of a (yet another) hurricane barreling down on my hometown of Houston last September, forcing us to take time to prepare and stock up on supplies. (Thankfully it narrowly missed us). Not to mention the massive snow and ice storm that hit Houston in February, knocking out our power and water for a week and preventing me from being able to study. Hard to focus on code when it’s 30 degrees (F) inside your apartment and you’re simply trying not to freeze to death.</p>



<p>It’s been incredibly stressful trying to keep it all together; to not abandon all hope about the state of the universe. But, I try to keep my head down, staying focused on my long-term goals. Launch School has been a welcome distraction.</p>



<p>But in spite of everything going on, since starting Launch School in early 2020 I’ve made more progress learning to code than I had ever previously thought possible. I have to remind myself of all of the incredible progress I’ve made to date, and of all of the new concepts I’ve now learned that I had no idea about before starting the program.</p>



<h3 class="wp-block-heading">Fight Like Hell</h3>



<p>This is the point where the old me would’ve given up. This is the point, before Launch School, where I would get frustrated at any small setback when trying to learn to program using other resources and quit. I would’ve given up and went off to try out some other learn-to-code resource, fully ensuring that I would be continuously trapped in an endless circle of tutorial hell, never progressing past the beginner stage.</p>



<p>But my mindset has changed. I’m not going to quit. Launch School has helped change my mentality from not believing I could ever learn computer programming, to building my confidence enough that I now know that I will absolutely 100% become a software engineer in the future.</p>



<p>Don’t let anyone or anything stop you or get in your way. If you want it bad enough, you’ll find a way to do it. No matter how long it takes and no matter how many roadblocks or bumps in the road you come across.</p>



<h3 class="wp-block-heading">Coding is a Humbling Experience</h3>



<p>The feedback I received after receiving the “Not Yet” score from the two TAs was extremely helpful for understanding specifically where I made mistakes. It was incredibly detailed and well thought out. Even though I knew immediately during the exam several places I had messed up, the detailed write-up from the TAs helped point out other errors and mistakes I hadn’t caught.</p>



<p>I was completely caught off guard with the 129 Interview, because the 129 Written Assessment I received two A+ scores, and was my best assessment overall score of the three I had taken up to that point. I think I got a little cocky and overconfident and assumed my string of good scores would continue. I assumed I was destined for greatness, and had forgotten how much actual work I had spent in the lead-up to preparing to pass those first three assessments</p>



<p>I was looking ahead, daydreaming about performance-based goals such as doing the LS capstone and getting an awesome job afterward. When I should’ve been focused on mastery-based goals of mastering the material and not worrying about a timeline.</p>



<h3 class="wp-block-heading">Conclusion</h3>



<p>Before receiving my “Not Yet” score, I had attended five study sessions, including official sessions, The Spot sessions, and private 1:1 sessions. After receiving “Not Yet”, I attended an additional nine study sessions, again including official, The Spot, and private sessions.</p>



<p>Since every student at Launch School is on a different schedule and is learning at a different pace, and especially since there is no physical classroom, it is extremely important that you <a href="https://medium.com/launch-school/de-isolate-your-studying-104b87667b16">de-isolate your studying</a> and study with other students. Be very active about reaching out to other students and seeing if they would like to study with you and work on practice problems.</p>



<p>I finally retook the Interview Assessment a second time seventeen days after the first attempt and received a “Conditional Pass”. I had to submit two assignments before officially passing the course, but eventually, I did pass.</p>



<p>I wasn’t going to write a blog post and get this personal, but eventually, I decided to write this article in case it may help any future students of Launch School who may have hit a bump along the road towards mastery. If it helps just one student, then it was worth hitting ‘publish’. Okay, enough writing for now, RB130 awaits. And remember:</p>



<p>You can bullshit yourself. And you can bullshit other people. But you can’t bullshit the Launch School TAs during a live coding interview. Now get to work!</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">3813</post-id>	</item>
		<item>
		<title>2020 Recap</title>
		<link>https://www.westonludeke.com/2020-recap/</link>
		
		<dc:creator><![CDATA[Weston]]></dc:creator>
		<pubDate>Mon, 04 Jan 2021 16:46:59 +0000</pubDate>
				<category><![CDATA[misc]]></category>
		<guid isPermaLink="false">https://www.westonludeke.com/?p=3790</guid>

					<description><![CDATA[2020 has finally come to an end. It was a long, stressful year, but I did my best to keep my head down to keep myself busy and productive. It wasn&#8217;t easy, and I wasn&#8217;t always able to ignore the insane events going on in the outside world, but I still managed to have a [&#8230;]]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image size-large"><img decoding="async" src="https://i.imgur.com/PINTTeL.jpg" alt=""/><figcaption>via @isaacmsmith on Unsplash</figcaption></figure>



<p>2020 has finally come to an end. It was a long, stressful year, but I did my best to keep my head down to keep myself busy and productive. It wasn&#8217;t easy, and I wasn&#8217;t always able to ignore the insane events going on in the outside world, but I still managed to have a fairly productive year.</p>



<p><a href="https://www.westonludeke.com/mid-2020-progress-update/">Note: You can read my mid-2020 progress update article here</a> if you&#8217;d like. I wrote it back in July 2020.</p>



<h2 class="wp-block-heading">Learning to Code</h2>



<p>In August 2019, I came across a program called <a href="https://launchschool.com/">Launch School</a> that is designed for its students to develop a career in software engineering. After I wrapped up a light coding project that I had been working on, I started doing the prep course for Launch School&#8217;s program. In 2020, my learning to code progress was probably about 90% exclusive to Launch School, more so after about July as I decided to narrow my focus to make more progress.</p>



<p>My original goal was to study programming 20 hours each week while working full-time. About halfway through the year, I decided to adjust my goal because I felt I was at a high risk of burnout. Studying about 15 hours a week feels much more realistic given my schedule.</p>



<p>In the end, I managed 694 hours of studying programming in 2020. This is more progress in one single year than I&#8217;ve ever achieved before. While I still have a long way to go to finish the Launch School program, and until I&#8217;m comfortable applying for full-time software engineering roles, I&#8217;m very proud of what I&#8217;ve been able to accomplish in only one year.</p>



<p>In 2020, one cool thing I did during Launch School was <a href="https://www.westonludeke.com/learning-how-to-write-clean-code-and-refactoring-via-a-tic-tac-toe-game-in-ruby/">I built a simple tic tac toe game in Ruby</a> written procedurally. In September, <a href="https://www.westonludeke.com/overcoming-test-anxiety-to-pass-launch-schools-rb109-written-assessment/">I took my first written exam as part of Launch School</a>, which was incredibly difficult, but amazingly I passed in on my first attempt. Later in December, I started learning OOP principles and can&#8217;t wait to develop more projects in the near future in OOP style.</p>



<p><a href="https://www.westonludeke.com/preparing-for-my-first-live-coding-assessment-launch-schools-rb109-interview/">I then learned how to live code in front of others</a>, an entirely new skill for me, and was able to pass my first live coding assessment. In preparation for the live coding assessment, I did so many exercises on Codewars <a href="https://www.codewars.com/users/WestonLudeke">I was able to get my honor to 875 points and my rank to 4 kyu</a>. Since <a href="https://launchschool.com/mastery">Launch School is based on Mastery-Based Learning</a>, I had to train myself to learn the material to mastery, which is an entirely new way of thinking for me.</p>



<p>I still have a long way to go as a student at Launch School, but I can&#8217;t wait to see the progress I&#8217;ll make in 2021!</p>



<h2 class="wp-block-heading">Learning Spanish</h2>



<p>After checking through this blog&#8217;s history, it seems that it&#8217;s been about five years since I&#8217;ve written an article around my journey learning Spanish to fluency. This, mostly because my primary goal right now is learning to code, but I&#8217;m still plugging away, quietly learning Spanish in my free time when I can.</p>



<p>Because I&#8217;m so focused on learning programming, my secondary goal of learning Spanish is a modest five hours per week. I&#8217;m grateful that I was able to study for 206 total hours in 2020. </p>



<p>My biggest accomplishment with Spanish in 2020 was when I realized back in August that, while my reading and speaking abilities were at a decent level, my listening abilities were absolutely atrocious. I could barely understand anything when others attempted to speak to me in Spanish. I realized that had severely underestimated how important the skill of listening is when acquiring a foreign language. In fact, today I would say listening is arguably the single most important skill in language learning.</p>



<p>Upon that eye-opening realization, I then started tracking the time I&#8217;m spending specifically improving my listening abilities. From August through the end of the year, I spent 61 hours improving my listening skills. I&#8217;m now tracking how much time I&#8217;m spending on Spanish in general, and also how much time I&#8217;m spending improving my listening skills. The way I&#8217;m tracking my progress, the 61 hours of listening is a subset of the 206 total hours of studying Spanish.</p>



<p>I have an endless supply of different tools at my disposal to learn Spanish, including about a dozen physical books on my desk, and another dozen digital books on my iPad. But, my focus now is almost exclusively around improving my listening skills, so the books and other resources are on the back-burner for the moment. The primary resource I&#8217;m using to improve my listening ability is <a href="https://www.dreamingspanish.com/">Dreaming Spanish</a>, which has incredible videos created by Spanish-speaking natives specifically for Spanish language learners.  </p>



<p>In addition to Dreaming Spanish, I have two teachers from Mexico who I use to practice my Spanish conversational skills. One teacher is originally from Torreón, Coahuila and I found her via <a href="https://www.italki.com/">Italki</a>. The other teacher is through Houston&#8217;s <a href="http://www.w-l-i.com/">World Language Institute</a> and lives in Mexico City. With both teachers, we converse via Skype roughly once per week for an hour each. This has helped me increase my confidence in speaking the language while helping me learn some new slang and phrases that are unique to Mexican Spanish.</p>



<p>Even though it&#8217;s not my primary goal at the moment, I look at learning Spanish as a fun hobby I can do in my downtime to relax. I can watch the Dreaming Spanish YouTube videos from my iPad while relaxing on the couch. Hopefully, by the time I can return to Mexico post-pandemic, I&#8217;ll be able to understand more conversations!</p>



<h2 class="wp-block-heading">Reading</h2>



<p>Due to the amount of time I&#8217;m spending learning to code (~15 hours/week) and learning Spanish (~5 hours/week), I didn&#8217;t read nearly as many books as I would&#8217;ve liked over the past two years.</p>



<p>However, in mid-2020, I also started tracking how much time I&#8217;m reading, which will hopefully keep me making progress. From when I started tracking in August through the end of the year, I read for 47 hours. In 2020 as a whole, I read 14 books to completion. Tracking my progress reading seems to have helped me complete more books, as I finished only seven books to completion in 2019. Amazingly, since I started tracking my progress on January 1st, 2014, I&#8217;ve read 146 books to completion.</p>



<p>Some of the best books I read in 2020 include:</p>



<ul class="wp-block-list"><li>&#8220;Atomic Habits&#8221; by James Clear</li><li>&#8220;Bounce&#8221; by Matthew Syed</li><li>&#8220;Drive&#8221; by Daniel Pink</li><li>&#8220;Mistakes Were Made (But Not By Me)&#8221; by Carol Tavris</li><li>&#8220;So Good They Can&#8217;t Ignore You&#8221; by Cal Newport</li></ul>



<p>Given the well-defined goals I have in other areas of my life, I intentionally don&#8217;t have any specific goals around reading that I&#8217;d like to hit. I&#8217;d just generally like to read more books and continue learning new things in my downtime.</p>



<p>Tracking my progress, even without a specific goal in mind, has helped me mentally stay focused and waste less time on social media and on Reddit. Even the productive subreddits can be a major time sink, and I find I gain a lot more by reading a new book on productivity.</p>



<p>While I have a wide range of topics that I&#8217;d like to read more about, lately I&#8217;ve intentionally narrowed my reading focus to books around self-improvement, getting disciplined, startups, technology, and other similar topics. This has helped give my mind a constant reminder of how to make progress accomplishing the ambitious goals I have. Once I finish Launch School and aren&#8217;t spending so much time outside of work learning programming, I&#8217;m sure I&#8217;ll switch back to more reading for leisure. </p>



<h2 class="wp-block-heading">A Stressful Year Is Over</h2>



<p>2020 was a year of incredible stress, anxiety, and uncertainty. I wasn&#8217;t in the best mindset back in March, April, and May during the first stages of the pandemic while also being overloaded at work after my two teammates quit around the same time. I had already been working from home since 2016, so that in itself wasn&#8217;t a change, but before covid I was able to have more of a social life on the weekends, eating out with restaurants and grabbing drinks with friends. Losing those healthy outlets to relieve stress was a tough adjustment, but eventually, I did get used to it.</p>



<p>Not being able to do much outside of the home, 2020 was a constant battle of dealing with cabin fever and the stress of being isolated. None of the previous sections I wrote above about my progress were easy to accomplish. In fact, because I&#8217;ve had to deal with so much stress and anxiety due to the pandemic, that I was a lot less consistent with my progress than I would&#8217;ve wanted. </p>



<p>In order to lessen my anxiety, I worked hard to reframe my mindset to tune out the negativity of the outside world and to focus on my goals. I started intentionally spending less time on social media and less time reading the news to intentionally reduce the amount of negativity I was bringing into my mind. This is a big reason why I started narrowing my reading-list focus, so to help tune out other topics and to help me stay focused on my goals.</p>



<p>In the end, 2020 was a miserable year in many ways, but I still did my best to keep my head down to stay focused. It sucks tremendously not being able to see family or friends, but I&#8217;m trying to make the most out of my social isolation.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">3790</post-id>	</item>
		<item>
		<title>Preparing for my first live coding assessment: Launch School&#8217;s RB109 Interview</title>
		<link>https://www.westonludeke.com/preparing-for-my-first-live-coding-assessment-launch-schools-rb109-interview/</link>
		
		<dc:creator><![CDATA[Weston]]></dc:creator>
		<pubDate>Wed, 02 Dec 2020 22:58:11 +0000</pubDate>
				<category><![CDATA[code]]></category>
		<guid isPermaLink="false">https://www.westonludeke.com/?p=3772</guid>

					<description><![CDATA[In my previous blog post, I wrote about my experience taking the first Launch School assessment, which is the written assessment for the Launch School RB109 course.&#160; The second of the two RB109 assessments is a live coding interview. During the assessment, the student is given two problems and is required to solve the problems [&#8230;]]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image size-large"><img decoding="async" src="https://i.imgur.com/fKMkcju.jpg" alt=""/><figcaption>image via @nesabymakers on Unsplash</figcaption></figure>



<p>In my previous blog post, <a href="https://www.westonludeke.com/overcoming-test-anxiety-to-pass-launch-schools-rb109-written-assessment/">I wrote about my experience taking the first Launch School assessment</a>, which is the written assessment for the <a href="https://launchschool.com/">Launch School</a> RB109 course.&nbsp;</p>



<p>The second of the two RB109 assessments is a live coding interview. During the assessment, the student is given two problems and is required to solve the problems in real-time in front of one of the Launch School TAs via CoderPad and Zoom.&nbsp; The goal of this second assessment is to prepare students for real-life job interviews for software engineering positions, which often have a live coding portion.&nbsp;</p>



<p>There are two important skills to learn to be able to pass the live coding assessment: Coding problem-solving ability and the ability to code in front of others on the spot. Meaning, you not only have to focus on learning how to solve coding challenges but also how to explain what you’re doing the entire time, out loud in front of others while solving the problem. In this article, I’m going to break down the specific steps I took to pass the interview assessment.</p>



<h3 class="wp-block-heading"><strong>Discipline and Repetition&nbsp;</strong></h3>



<p>The first part to focus on is to get really good at solving coding challenges. The way you get better at this skill is by sheer repetition, solving countless problems over and over. </p>



<p>In my opinion, the ability to be good at solving coding challenges is essentially a skill of pattern-matching. This is similar to an (American) football coach or player who wants to get better at anticipating what the opposing team is going to do before the play is called. They get better at this skill through sheer repetition, both on the football field and through watching endless game film. Eventually, they start to notice patterns, which gives them a much greater ability to anticipate what the opposition is doing or going to do.</p>



<p>By solving countless coding challenges over and over, eventually, your mind will start to subconsciously notice patterns, making it easier to solve problems.</p>



<h3 class="wp-block-heading"><strong>Codewars</strong></h3>



<p>I had finished the Ruby Small Problems exercises the first time simultaneously while working on the RB101 course. When preparing for the RB109 interview, I redid the majority of the problems, skipping the Advanced section as they are a bit too far advanced past the assessment&#8217;s level of questions.</p>



<p>Next, I went through the list of about ~66 Codewars problems put together by Chrisitan Larwood and Megan Turley. Working on those problems was extremely helpful for my preparation for the interview. I made myself a Google Sheet with a link to each problem from the original Google Doc to easily keep track of the questions. </p>



<p>While going through the problems, I timed myself to see how long it would take me to solve each challenge, adding my time to the spreadsheet upon finishing each question. I would then go back and redo problems that took me longer than about 25-30 minutes.</p>



<p>My coding ability was a bit rusty while solving the first several problems, but by the end of the list, I felt my skill set was greatly improved and I was much more confident in my ability to pass the interview assessment. Following the Codewars problems, I then completed the list of problems from the ‘Watch Others Code’ videos.</p>



<p><a href="https://medium.com/launch-school/a-comprehensive-list-of-rb109-practice-problems-other-tips-4a4fbb3cdd7c">Click here for Christian&#8217;s blog post containing the Google Docs for both the list of Codewars problems and the &#8220;Watch Others Code&#8221; problems.</a> They&#8217;re under the section &#8220;Preparing for the Live Assessment&#8221;.</p>



<h3 class="wp-block-heading"><strong>A Difficult, Entirely New Skill</strong></h3>



<p>Live coding in front of someone, while explaining what you’re doing as you solve the problem, is an entirely new skill to learn. I consider this to be a separate skill from the skill of solving coding challenges. You have to learn not just how to solve the problem itself, but how to articulate your thought process along the way.</p>



<p>For many students, coding in front of others is a nerve-wracking experience, at least the first few times. The first Launch School study session I attended that required me to live code in front of both the TA and the four other students in the session was a complete disaster. I completely bombed and was not prepared. Thankfully the TA, Callie, stayed late after that study session and greatly helped me with the problem.</p>



<p>It’s fairly common for a student to spend countless hours coding by themselves, only to freeze up and/or totally crash-and-burn when coding in front of others. The good news is with sufficient practice you can limit your nerves or, hopefully, get rid of them altogether. Like any other skill, it takes practice to get good at it.</p>



<p>Pro Tip: Don’t underestimate how difficult live coding will be your first time if you’ve never done it before.</p>



<h3 class="wp-block-heading"><strong>Practice In Front of Others</strong></h3>



<p>Just like with solving coding challenges, to get better at live coding in front of others, one also has to practice multiple times. You can do better at live coding by attending multiple study sessions. It&#8217;s probably a good idea to attend study sessions with multiple different TAs because they each have a slightly different teaching style. You can learn a lot from all of them.</p>



<p>Another great way to practice live coding is to find other students at the same level in the course and see if they’d like to practice. If someone else in the study session is also studying for the interview assessment, ask them on Slack if they’d like to do a live 1:1 practice at a later time. </p>



<p>The student-led study group, The Spot, on Slack is a great way to meet other students who are at the same level in the program. The Spot also has weekly assessment study groups, which are led by students who are further along in the curriculum.&nbsp;</p>



<h3 class="wp-block-heading"><strong>Practice in CoderPad&nbsp;</strong></h3>



<p>Another Pro-Tip would be to practice solving coding challenges directly in CoderPad, which is the tool used during the actual interview assessment.&nbsp;It&#8217;s a great way to prepare for game-time conditions. </p>



<p>I made the mistake of practicing for the first few weeks in SublimeText, then totally bombed my first study group because I was unprepared for the small differences between CoderPad and SublimeText. You can sign up for a free CoderPad account to play around with it yourself.&nbsp;</p>



<p>After that first study group, I made sure to only use CoderPad to practice coding challenges going forward. Whenever I would work on a new Codewars problem, as an example, I would paste my PEDAC template in CoderPad and solve the problem there. Then, paste my solution from CoderPad over to Codewars to submit my answer.</p>



<h3 class="wp-block-heading"><strong>PEDAC!</strong></h3>



<p>The last piece is to make sure you have a good <a href="https://medium.com/launch-school/solving-coding-problems-with-pedac-29141331f93f">PEDAC</a> template to use to solve the problems. This will help you create a strong mental model when working on the coding challenges and make your life a lot simpler.</p>



<p>In the interview, having a solid algorithm before you write your code will show the TA grading your assessment that you’re diligent and thoughtful in how you solve problems (i.e. that you’re coding with intent). It will also help you with the ability to break down and solve the problems.</p>



<h3 class="wp-block-heading"><strong>Over-preparing</strong></h3>



<p>In all, I studied for the interview assessment from September 9th, 2020 to December 1st, 2020 for a total of about 140 hours. This ended up being about 10-15 hours per week on nights and weekends while working full-time at my day job.</p>



<p>It’s possible I over-studied a bit for the interview, but I really wanted to be prepared for anything on the assessment. Since Launch School is designed around <a href="https://launchschool.com/mastery">Mastery-Based Learning</a>, I wanted to make sure I had a full grasp of the material and had learned it as close to mastery as I could.</p>



<p>In my opinion, all of that over-preparation was worth it as I didn’t feel too nervous during the assessment and was, thankfully, able to pass it on the first attempt. To all of the future students reading this, good luck!</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">3772</post-id>	</item>
		<item>
		<title>Overcoming test anxiety to pass Launch School&#8217;s RB109 written assessment</title>
		<link>https://www.westonludeke.com/overcoming-test-anxiety-to-pass-launch-schools-rb109-written-assessment/</link>
		
		<dc:creator><![CDATA[Weston]]></dc:creator>
		<pubDate>Fri, 11 Sep 2020 14:29:26 +0000</pubDate>
				<category><![CDATA[code]]></category>
		<guid isPermaLink="false">https://www.westonludeke.com/?p=3752</guid>

					<description><![CDATA[As I wrapped up studying for the first Launch School course, RB101, in mid-July 2020, I then began studying for the written assessment for that first course. In this article, I&#8217;ll share the tips I used to pass the written exam. Your mileage in the course may vary, but the tips below are what worked [&#8230;]]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image size-large"><img decoding="async" src="https://i.imgur.com/TVVxrZy.jpg" alt=""/><figcaption>Image via <a href="https://unsplash.com/@mattragland">@mattragland</a> on Unsplash</figcaption></figure>



<p>As I wrapped up studying for the first <a href="https://launchschool.com/">Launch School</a> course, RB101, in mid-July 2020, I then began studying for the written assessment for that first course. In this article, I&#8217;ll share the tips I used to pass the written exam. Your mileage in the course may vary, but the tips below are what worked for me.</p>



<p>I was nervous and anxious about taking this first assessment as it&#8217;s the first assessment in the Launch School program. Hopefully, the detailed steps I followed below will help future students be prepared enough to pass the exam. With sufficient preparation, I believe test anxiety can be mitigated enough to ace the exam.</p>



<p>Note: Launch School divides the assessments into separate course numbers from the actual course where new material is introduced. When RB109 is mentioned below, it is referencing the two assessments for the first course, RB101.</p>



<h3 class="wp-block-heading">Create a Google Doc file to store notes</h3>



<p>The first thing I did in mid-July was to create a Google Doc specifically for notes around the RB109 assessments. This Doc became a loose collection of tips and hints picked up along the way while studying for assessment.</p>



<p>As I was reading through the written assessment&#8217;s official study guide, I made sure to take notes and add them to the Doc. I also made myself a to-do list to read all of the relevant articles and blog posts on the topics mentioned in the study guide.</p>



<p>I then read every single blog post I could find from other Launch School students who had blogged about their experiences in the RB109 assessments. For current students, when logged into the Launch School site, you can click on the &#8220;Sharing&#8221; tab to find the posts. You can then search the page using Command+F/Control+F with terms like &#8220;RB109&#8221; to make it easier to find relevant posts.</p>



<p>I added any hint or tip I came across from the blog posts to my Doc for the assessment notes. Anything that seemed even mildly or slightly relevant, I added to the Doc. This included not just info from the study guide and blog posts on what concepts to study, but also tips and tricks on what to expect on the exam, and also how to prepare for the assessment. </p>



<p>My notes file came in handy as I then had a centralized location for all the different study tips I had collected. This made it easy to quickly re-read all of the study tips multiple times throughout my assessment preparation without having to re-open dozens of different blog posts.</p>



<p>The notes file was also extremely useful to quickly re-read the positive thoughts and gain positive reenforcement from other students whenever I was feeling anxious about the exam and/or particularly overwhelmed with exam preparations.</p>



<h3 class="wp-block-heading">Having a good cheat sheet is necessary</h3>



<p>After reading all of the blog posts and the Launch School study guide, I then created another Google Doc to serve as my cheat sheet for the exam. The RB109 written exam is open-book but it&#8217;s also time-limited to three hours. It&#8217;s important to have a good cheat sheet to reference during the exam because you don&#8217;t have much time to spend reading through the official Ruby documentation during the exam. During the exam, you may have time to read the Ruby docs for a question or two, but certainly not for 20+ questions.</p>



<p>In the cheat sheet, I enabled Google Doc&#8217;s outline feature so I could quickly click around to different concepts. You can enable the outline feature by clicking &#8220;View&#8221; in the Docs toolbar, then clicking &#8220;Show Document Outline&#8221; to enable:</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="425" height="182" src="https://www.westonludeke.com/wp-content/uploads/2020/09/Screen-Shot-2020-09-10-at-12.01.35-PM.png" alt="" class="wp-image-3761"/></figure>



<p>I divided the cheat sheet into sections based on each concept. Each section started off with a heading, which is useful as the headings are what show up in the outline&#8217;s sidebar. An example heading would be for Ruby&#8217;s &#8220;Select&#8221; method. Under each heading, I then explained the given topic with as much detail and precision as I could.</p>



<p>The goal of the cheat sheet is so you don&#8217;t have to worry about putting the concepts in your own language during the exam. You&#8217;ll have your hands full answering the questions as-is, without having to worry if you&#8217;re properly explaining how a method is called, etc.</p>



<h3 class="wp-block-heading">Find a good Markdown tool</h3>



<p><a href="https://jsinibardy.com/preparing-launch-school-109-written-assessment">Based on Juliette Sinibardy&#8217;s excellent recommendation</a>, I found the free tool <a href="https://typora.io/">Typora</a> to be extremely helpful as it&#8217;s not a web application but instead is a desktop application that you can download locally to your machine. It&#8217;s fairly lightweight and easy to work with. This is helpful to quickly create and save new files in markdown.</p>



<p>The answers for the written assessment must be submitted using markdown, so using a tool like Typora made it easy to get used to typing my answers on the practice problems in markdown format. I made a folder in Dropbox where I store all my files and could quickly create new markdown files in Terminal (one file per practice problem).</p>



<h3 class="wp-block-heading">Use Christian Larwood&#8217;s practice problems</h3>



<p>Launch School student Christian Larwood made an excellent Google Doc containing practice problems for the exam. <a href="https://medium.com/launch-school/a-comprehensive-list-of-rb109-practice-problems-other-tips-4a4fbb3cdd7c">The Doc can be found in his blog post here (it&#8217;s worth reading the whole post!)</a>. This is a great reference to know approximately the types of questions that you will come across on the RB109 written exam.</p>



<p>I recommend going through the entire Doc and solving each practice problem. Don&#8217;t worry about timing yourself on your first run-through of the problems. Instead, focus on answering each problem as detailed and thorough as possible. Break down the code and explain what is happening in the equation line-by-line. This will help you get used to thinking logically about what is happening on each line of the code.</p>



<p>I recommend answering each question using a markdown tool as you&#8217;ll need to answer the questions in markdown on the written assessment. Because Typora is a desktop application, I created 25-30 different markdown files in a folder, one file for each question, numbered based on the question&#8217;s order of appearance in the list of practice problem Doc.</p>



<p>It&#8217;s probably a good idea as well to have tools like a code editor (I use Sublime Text) and Terminal open to quickly test the code while solving the problems. Irb will come in handy! </p>



<p>Each time I came across a new concept in the list of practice problems, I added the concept to my cheat sheet. After making sure I wrote up a good, detailed explanation of the code, I then added some of the specific language explaining the code to the cheat sheet.</p>



<h3 class="wp-block-heading">Practicing coding under pressure</h3>



<p>After finishing my first, untimed run-through of the practice problems, I then did a second run-through of the problems. On this second round, I timed myself to see how long it took me to answer each question. I then recorded the completion time for each question in a notes file.</p>



<p>My goal was to be able to explain what is occurring line-by-line in each practice problem in about 4-6 minutes. Any question that took me about 9-11 minutes or longer, I knew I needed to spend more time reviewing the concepts to hopefully increase my speed of answering.</p>



<p>Having a detailed cheat sheet, organized by concepts, helped speed up my response time dramatically. During the assessment, there will be between 20-25 questions and you&#8217;ll have three hours to complete and submit the exam. By increasing your speed answering each question during the practice phase, you will have more time to review your questions before your test needs to be submitted.</p>



<p>On the exam, you won&#8217;t need to explain what is occurring on each question line-by-line. On most of the questions, you will simply be asked what is occurring on a specific line or why the output of the code is what it is. But, I felt that being able to explain the entire problem line-by-line was a good way to be prepared to be asked a question on any specific part of the problem. It&#8217;s also good to practice the level of detailed, meticulous writing necessary to pass the exam.</p>



<h3 class="wp-block-heading">Attend the live study sessions!</h3>



<p>The Launch School TAs hold frequent study sessions held each week. I recommend attending at least one to get a feel for the exam before taking it. It&#8217;s also a great place to ask the TA questions about what to expect, as well as to meet other students who are at the same level in Launch School that you&#8217;re in.</p>



<p>For students preparing for the written exam, the TA hosting the study session will ask you to describe a practice problem out loud line-by-line. This will be a little nervewracking at first, but this is a great chance to learn exactly the level of detail required to pass the written assessment. Take detailed notes on the feedback the TA gives, as well as any tips you pick up from other students.</p>



<h3 class="wp-block-heading">Overcoming test anxiety</h3>



<p>It&#8217;s been twelve years since I was a college student, graduating in December 2008, so it&#8217;s been a very long time since I was studying for an exam. On top of that, doing well in Launch School is very important to me. Both of these facts led me to have a decent amount of test anxiety before taking the written assessment.</p>



<p>Because the RB109 written assessment is our very first assessment in the Launch School program, students at this point in the program don&#8217;t have too much mentally to base the assessment on (other than the helpful advice of other students and the TAs). This lack of previous assessment experience also caused me a bit of anxiety as I didn&#8217;t have the experience to help set my expectations.</p>



<p>To overcome my anxiety I had to reframe my thoughts for success. I told myself that part of the anxiety comes from a fear of failure, and the greatest way to reduce the chances of failure is by being extremely prepared. The previous sections of this article are all of the specific, concrete steps I took to make sure I was prepared as much as possible.</p>



<p>While I was still nervous before starting the exam, my confidence increased during the exam as I was able to answer more and more questions. If I got stuck on a question, I simply made a note of the question number and moved on to the next question, and made sure to go back later and answer the skipped question before submitting the exam.</p>



<p>One good part about the RB109 written exam is that you can schedule and take the exam at your convenience. So if there is a day where you&#8217;re particularly not feeling ready or your stress is too high, you can simply wait a little longer until you&#8217;re mentally ready to go.</p>



<h3 class="wp-block-heading">Conclusion</h3>



<p>Given my stress levels and anxiety before taking the exam, never in a million years did I think I would actually pass the written assessment on the first try, but I did. Being extremely diligent, thorough, and prepared by following the steps outline above helped me tremendously. It helped make the exam much less difficult than it would&#8217;ve been had I not been so prepared.</p>



<p>In the end, I spent 114 hours studying for the written assessment between mid-July to when I took the exam on Labor Day, 2020. This after spending 410 hours on the RB101 course from January to mid-July 2020. And while this may seem like a long time to spend just on the first Launch School course, I was making sure that I was putting in the work learning the fundamentals of the Ruby programming language. As Launch School founder Chris Lee says often, one can never spend too much time on the fundamentals. Be patient and put in the work and you&#8217;ll be able to ace the test just like I did!</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">3752</post-id>	</item>
		<item>
		<title>Tips for Working From Home</title>
		<link>https://www.westonludeke.com/tips-for-working-from-home/</link>
		
		<dc:creator><![CDATA[Weston]]></dc:creator>
		<pubDate>Fri, 17 Jul 2020 17:24:39 +0000</pubDate>
				<category><![CDATA[misc]]></category>
		<guid isPermaLink="false">https://www.westonludeke.com/?p=3631</guid>

					<description><![CDATA[It&#8217;s been five years since I&#8217;ve worked in an office on a regular basis. Working remotely has been a huge productivity boost for my life, but it requires a certain level of discipline to pull it off successfully. 98% of the time I&#8217;m working from my apartment and there are some unique challenges to working [&#8230;]]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image size-large"><img decoding="async" src="https://i.imgur.com/tG5aSVR.jpg" alt=""/><figcaption>via <a href="https://unsplash.com/photos/LKGwdezdqSk">@rpnickson</a> on Unsplash</figcaption></figure>



<p>It&#8217;s been five years since I&#8217;ve worked in an office on a regular basis. Working remotely has been a huge productivity boost for my life, but it requires a certain level of discipline to pull it off successfully.</p>



<p>98% of the time I&#8217;m working from my apartment and there are some unique challenges to working from the same location where one also rests and sleeps. Below are some quick tips that I use in order to be successful and remain productive working from home, while hopefully mitigating the challenges and distractions. </p>



<p>These are just some tips that work personally for me. Your mileage may vary.</p>



<h4 class="wp-block-heading"><strong>Always keep strict working hours</strong>&nbsp;</h4>



<p>I try to only work between 9-6 on weekdays. Working in support for a startup for my day job, there&#8217;s always more work to be done and more customers to help. I give myself a hard stopping time to log-off each day. Anything that is still unfinished by the end of my working hours remains until the next day. Those emails will still be there in the morning.</p>



<p>Keeping a strict schedule helps keep me focused and disciplined. It also helps me not waste time during the work day. It also has the benefit of my work not bleeding into my personal life, nights, and weekends.</p>



<h4 class="wp-block-heading"><strong>Push Non-Work Until The Weekend</strong></h4>



<p>Many things on my personal to-do list I simply push back until the weekend as much as possible. Most of these things are never urgent, ex: Doing the laundry, getting groceries, etc.</p>



<p>For example, I liberally use Gmail&#8217;s Snooze functionality to snooze emails in my personal inbox until the weekend. If it isn&#8217;t urgent, I don&#8217;t need to look at it in my inbox during the week.</p>



<p>Another great tool I use is Instapaper to save interesting articles I come across online to read later. Let&#8217;s say I click on Hacker News during the work day and see an interesting article. I&#8217;ll simply save the article to my Instapaper to read later instead of wasting 20-30 minutes reading it during the work day.</p>



<h4 class="wp-block-heading">Have a Dedicated Work Environment</h4>



<p>In my apartment, I have a desk that has my laptop, a second monitor, and an office chair in front. I use this space for work and I&#8217;m rarely doing anything in this space for anything other than work. Maybe 5% of my time here is paying bills, etc. The rest of my time here is work, not for leisure.</p>



<p>When I want to relax outside of working hours, I&#8217;m rarely at my desk. I&#8217;m usually on my iPad on the couch, reading articles I had previously saved to my Instapaper or reading books, etc.</p>



<h4 class="wp-block-heading"><strong>Take Frequent, Small Breaks Throughout The Workday</strong>&nbsp;</h4>



<p>Sitting for 8-9 hours straight without moving isn&#8217;t feasible for most people, nor is it healthy. I probably stand up and stretch my legs once an hour. Or I&#8217;ll take 10 minutes to rest my back on my couch. Or 10 minutes to do the dishes. I got this idea of frequent breaks from the <a href="https://en.wikipedia.org/wiki/Pomodoro_Technique">Pomodoro Technique</a>.</p>



<p>This is especially helpful if I&#8217;m stuck on a difficult programming problem. Stepping away from my desk forces my brain to focus on something else. When I come back to my desk, my brain is more clear and I can often solve the problem much quicker.</p>



<p>My laptop also goes to sleep after 10 minutes as a good reminder not to be away from my desk for too long.</p>



<h4 class="wp-block-heading"><strong>Have a Set Amount of Work to do Daily </strong></h4>



<p>A good way to track my personal progress is to have a specific goal of how much work I want to do each week. For example, my goal for programming is 15-20 hours per week, which is about 3 hours per weekday.</p>



<p>You can break it down even further by setting a goal of one hour completed before Noon, a second hour completed by 3pm, and the final hour of studying done by 6pm. This isn&#8217;t too difficult to hit because it can be one hour before I start working, one hour on my lunch break, and one hour at the end of the day.</p>



<p>Being this specific with goals throughout the day works great for me so I don&#8217;t procrastinate and leave everything until 5pm and then end up too tired at the end of the day to do anything. </p>



<p>This also forces me to ignore everything else going on in my life, not related to my career goals. This is because the only thing that matters to me is hitting my goal of studying programming a set amount of time each week and of doing my job at work well.</p>



<h4 class="wp-block-heading"><strong>Have a Dedicated Day Off&nbsp;</strong></h4>



<p>I originally wanted to put in work 7 days a week but was quickly burning out. For the past month or two, I&#8217;ve been taking Saturdays completely off.</p>



<p>I&#8217;m now not touching my laptop on Saturdays and instead using the day to watch Netflix or read a book.. or do anything else that doesn&#8217;t require intense mental effort. By Sunday I&#8217;m refreshed and ready to go again at full speed.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">3631</post-id>	</item>
	</channel>
</rss>
