<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: ogrotten</title>
    <description>The latest articles on DEV Community by ogrotten (@ogrotten).</description>
    <link>https://dev.to/ogrotten</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F67612%2Fa80bb8fd-0b5b-4dc2-8ae5-e860d0428346.png</url>
      <title>DEV Community: ogrotten</title>
      <link>https://dev.to/ogrotten</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ogrotten"/>
    <language>en</language>
    <item>
      <title>JS game engine update, Kaboom 3000 beta released</title>
      <dc:creator>ogrotten</dc:creator>
      <pubDate>Wed, 01 Feb 2023 07:10:08 +0000</pubDate>
      <link>https://dev.to/ogrotten/js-game-engine-update-kaboom-3000-beta-released-4c88</link>
      <guid>https://dev.to/ogrotten/js-game-engine-update-kaboom-3000-beta-released-4c88</guid>
      <description>&lt;p&gt;The Kaboom game engine received an update and has reached it's third major version &lt;strong&gt;Kaboom 3000&lt;/strong&gt;. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;object scene graph / children objects &lt;/li&gt;
&lt;li&gt;rotated / polygon areas&lt;/li&gt;
&lt;li&gt;load .ttf, .otf, .woff fonts&lt;/li&gt;
&lt;li&gt;up to 50x graphics performance&lt;/li&gt;
&lt;li&gt;custom loading screen&lt;/li&gt;
&lt;li&gt;post visual effects&lt;/li&gt;
&lt;li&gt;tweening!!!!&lt;/li&gt;
&lt;li&gt;gamepads&lt;/li&gt;
&lt;li&gt;pathfinding&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That's a pretty hefty and ambitious feature set for a relatively small project like this. On the one hand, it's not Unity... but on the other hand, good.&lt;/p&gt;

&lt;p&gt;The docs are great and the Discord is active. If you're a front end or full stack JS dev by day, Kaboom is a legit way to build that dream game, or just join a &lt;a href="https://dev.to/t/gamejam"&gt;#gamejam&lt;/a&gt; without having to learn a new language or IDE/UI. &lt;/p&gt;

&lt;p&gt;Details, code snippets, &lt;em&gt;and the online playground&lt;/em&gt;, on the full blog post.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://3000.kaboomjs.com/blog/3000"&gt;Kaboom v3000 Beta Release&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Lastly,&lt;br&gt;
I dunno. 3000 seems low. It just doesn't sound that promising or featureful. Now consider, and hear me out on this, I think  &lt;strong&gt;3001&lt;/strong&gt; sounds sensationally phenomenal. I'll bet it can handle anything. That &lt;strong&gt;1&lt;/strong&gt; makes aaall the difference.&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>kaboom</category>
      <category>gameengine</category>
      <category>gamedev</category>
    </item>
    <item>
      <title>Do you use a cloud based env/IDEs for daily dev? hich one do you use and w</title>
      <dc:creator>ogrotten</dc:creator>
      <pubDate>Sun, 08 Aug 2021 14:21:51 +0000</pubDate>
      <link>https://dev.to/ogrotten/do-you-use-a-cloud-based-env-ides-for-daily-dev-hich-one-do-you-use-and-w-3147</link>
      <guid>https://dev.to/ogrotten/do-you-use-a-cloud-based-env-ides-for-daily-dev-hich-one-do-you-use-and-w-3147</guid>
      <description>&lt;p&gt;Which do you use and what are your top 3 loves/hates of it?&lt;/p&gt;

&lt;p&gt;I've just recently started a new job (happy my first paycheck day!) and we've discussed a stipend for me to get a computer for dev.&lt;/p&gt;

&lt;p&gt;Except... instead of buying a stand-alone pc, I've seriously been thinking about getting a cloud dev environment/IDE.&lt;/p&gt;

&lt;p&gt;So I'm curious what anyone uses, and what they think about it.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>How to make your Lambda School 'Profile' look great</title>
      <dc:creator>ogrotten</dc:creator>
      <pubDate>Fri, 23 Apr 2021 21:13:15 +0000</pubDate>
      <link>https://dev.to/ogrotten/how-to-make-your-lambda-school-profile-look-great-1feb</link>
      <guid>https://dev.to/ogrotten/how-to-make-your-lambda-school-profile-look-great-1feb</guid>
      <description>&lt;p&gt;I was on the team that built the &lt;a href="https://profiles.lambdaschool.com/"&gt;Lambda Profiles&lt;/a&gt; feature for Lambda School. It is a comprehensive list of students that shows skills, projects, education and other introductory info. It was built primarily for Lambda Hiring Partners, but any employer with a role to fill can browse and contact you, the Lambda School graduate.&lt;/p&gt;

&lt;p&gt;Aside from the public presence that it offers, your Profiles card is also a kind of "canary in a coal mine" that can reveal issues with your Lambda info.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;It is an unhindered look at your most important data, and it is highly relevant for your job search that this display is looking spiffy.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;That being said, here are some tips to optimize your Lambda Profile.&lt;/p&gt;

&lt;h2&gt;
  
  
  Find yourself
&lt;/h2&gt;

&lt;p&gt;The system is designed to minimize any personal or systemic favoritism or any sort of preference. Additionally, the list is randomized on each load. It is not possible to find yourself directly by name. Therefore, the most specific way to find yourself will require some manual copy/paste.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Edit your &lt;a href="https://dashboards.lambdaschool.com/profile"&gt;Lambda Profile&lt;/a&gt;. Keep this tab open.&lt;/li&gt;
&lt;li&gt;Right-click your photo &amp;gt; &lt;code&gt;Open image in new tab&lt;/code&gt;. &lt;em&gt;First tip: If you don't have a photo,&lt;/em&gt; &lt;strong&gt;&lt;em&gt;add one.&lt;/em&gt;&lt;/strong&gt; It will otherwise be generic art.&lt;/li&gt;
&lt;li&gt;In the url bar, you'll see something like &lt;code&gt;/Student/s60q34hjlah89af89/image/&lt;/code&gt;. The hash in the middle is your Student ID. Double-click &amp;gt; &lt;code&gt;Copy&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Go to &lt;a href="https://profiles.lambdaschool.com/"&gt;https://profiles.lambdaschool.com/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;In the url bar, manually add to the end: &lt;code&gt;?g=PasteYourHashHere&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;https://profiles.lambdaschool.com/?g=s60q34hjlah89af89&lt;/code&gt; is an example of how it should look. Press enter.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The end result shows only your profile. Your card will be added to a list which you can return to by using the "Saved" tab. It will persist through reloads (it uses LocalStorage). You can copy the link to your card via the "Share" button on the right.&lt;/p&gt;

&lt;p&gt;Anyone (&lt;em&gt;including You&lt;/em&gt;) can use the link to give someone a clean and concise snapshot of what you are capable of. If Covid Calendar ever comes to a close, I personally can see myself using this link at meetups and conferences because it is quick and simple with no digital requirement.&lt;/p&gt;

&lt;p&gt;The main point right now though is that your Lambda Profiles card will clearly show any issues with your profile. You can see any misspellings, missing images, inaccuracies, etc. &lt;em&gt;This is as it appears to the general public.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Lambda Profiles works from the same database as the Edit Profile page, but the database information is cached (I don't know how long). This same data is used throughout the automated Lambda matching and Job Search systems. &lt;em&gt;In other words, bad data on your profile could hinder your hunt in more ways than just this card.&lt;/em&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Personal Data
&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;Yes, this is important.&lt;/strong&gt; If your name and track need updating, speak with your Lambda Career Coach to get it changed. &lt;/p&gt;

&lt;p&gt;Your &lt;em&gt;Location&lt;/em&gt; is used with some regional mapping logic to derive a relationship to the cities in the Location filter, e.g. filtering on Seattle, WA will regionally hit Portland, OR. Location can be changed on the Edit Profile page, left sidebar, Contact Info block.&lt;/p&gt;

&lt;p&gt;To account for international students, location is set via &lt;em&gt;free text field&lt;/em&gt;. Due to this, we found wild variations in how people entered their U.S. location. My favorite was &lt;code&gt;, Brooklen&lt;/code&gt;. &lt;em&gt;Set your location to Full City, then comma-space, then 2 letter state to have your location hit by the filter.&lt;/em&gt; e.g. "Boise, ID". Entries like "LA, Calif" or "NY NY" will not match. &lt;/p&gt;

&lt;p&gt;If your profile does not have relevant links to your materials, the buttons on your card will be &lt;em&gt;omitted&lt;/em&gt;. Without profile entries for Portfolio website, LinkedIn profile, GitHub presence, or a Resume link, it will be more difficult for a potential hirer to contact you, in addition to your profile appearing incomplete and bland.&lt;/p&gt;

&lt;p&gt;The Resume field can link to anything you wish, but it is highly suggested to use a PDF or link to an online doc like Google Doc or Word 365.&lt;/p&gt;

&lt;h4&gt;
  
  
  Skills
&lt;/h4&gt;

&lt;p&gt;&lt;em&gt;All Skills that you have chosen are used by the filters section to find&lt;/em&gt; &lt;strong&gt;&lt;em&gt;you&lt;/em&gt;&lt;/strong&gt;. Even though the display only shows the first 4 rows of skills, &lt;em&gt;all skills&lt;/em&gt; entered into your profile are used for filtering. A change was in progress  that would prioritize display of skills that a viewer filtered, but I'm unsure of it's completion.&lt;/p&gt;

&lt;h4&gt;
  
  
  Projects
&lt;/h4&gt;

&lt;p&gt;Ensure that your links are accurate. Your entered project image (hard scaled to 240 x 104) will be shown, or a generic Lambda image will be used in its absence. Long project titles will overflow the layout, making your card look janky so it is best to keep them to just a few words. Descriptions look great when limited to 20-30 words.&lt;/p&gt;

&lt;h4&gt;
  
  
  Education
&lt;/h4&gt;

&lt;p&gt;Your Lambda School certification will appear first, derived from your  Lambda School track and cohort. Other education items should be entered in the Degree field to-the-point, e.g. "BS Communication". Spelled out would be best, but the most common abbreviations will be hit by the filter.&lt;/p&gt;

&lt;h4&gt;
  
  
  Industry Experience
&lt;/h4&gt;

&lt;p&gt;Knock yourself out. Your choices here will be hit directly by the filter of the same name. &lt;/p&gt;

&lt;h4&gt;
  
  
  Job Preferences
&lt;/h4&gt;

&lt;p&gt;There is no filter based on this section. However, expect that it will be used by the viewer to help find who may best fill their available roles.&lt;/p&gt;

&lt;h1&gt;
  
  
  Conclusion
&lt;/h1&gt;

&lt;p&gt;Following the above tips, you should have a sleek Lambda Profiles card.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;If by this point there is still something inaccurate or missing, start a Frontdesk ticket in Slack by sending the message &lt;code&gt;/frontdesk&lt;/code&gt; to either @Slackbot or yourself.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;While Lambda Profiles is not a "winner take all" octagon blood-match against other students, these few steps can help you maximize the effectiveness of your card. The extra added bonus is having updated and accurate partner matching information for other sections of the Lambda Job Search ecosystem.&lt;/p&gt;

</description>
      <category>lambdaschool</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Setup email for a website, and perform send/receive thru your main Gmail.</title>
      <dc:creator>ogrotten</dc:creator>
      <pubDate>Wed, 03 Jun 2020 18:32:15 +0000</pubDate>
      <link>https://dev.to/ogrotten/setup-email-for-a-website-and-perform-send-receive-thru-your-main-gmail-3dme</link>
      <guid>https://dev.to/ogrotten/setup-email-for-a-website-and-perform-send-receive-thru-your-main-gmail-3dme</guid>
      <description>&lt;p&gt;Having a portfolio site is cool and all, but I always felt it kinda janky to have a portfolio website and an email address that do not line up. After spending the better part of 2 days trying to find setup instructions, I finally tripped across the docs, and decided not to be &lt;a href="https://xkcd.com/979/"&gt;&lt;strong&gt;DenverCoder9&lt;/strong&gt;&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Using Namecheap domain name registrar, and GMail as my email client, I have setup both services so that email intended for &lt;code&gt;you@yourdomain.com&lt;/code&gt; can be sent and received, discreetly, in GMail. This can likely be setup with any services, but these instructions focus on Namecheap and Gmail.&lt;/p&gt;

&lt;p&gt;This has no extra cost. The "Secure" or "Private" email service that Namecheap and other registrars offer is a &lt;em&gt;separate service and cost&lt;/em&gt; that is not required for this setup.&lt;/p&gt;

&lt;p&gt;The end result will be that incoming email goes to your custom domain, and is then forwarded to your Gmail. Outgoing mail will do the reverse.&lt;/p&gt;

&lt;p&gt;The Gmail setup requests permission for this by sending an email to the custom domain email with a confirmation link, so you need to have some kind of simple forwarding already setup. Once the process is completed, it will allow you to send email from within Gmail using the custom domain email as the "From" address.&lt;/p&gt;

&lt;p&gt;These instructions assume you're using Namecheap. If you used a different registrar, the interface will be different but the configuration will be largely the same.&lt;/p&gt;

&lt;h2&gt;
  
  
  Setup Namecheap
&lt;/h2&gt;

&lt;p&gt;Namecheap needs to be setup to forward your domain email to your gmail account.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Login to Namecheap.&lt;/li&gt;
&lt;li&gt;On the left click &lt;code&gt;Domain List&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;On the list, to the far right, click &lt;code&gt;Manage&lt;/code&gt; next to the domain you want to setup email. &lt;/li&gt;
&lt;li&gt;Scroll down to the section &lt;code&gt;Redirect Email&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Click &lt;code&gt;Add Forwarder&lt;/code&gt;.
You &lt;strong&gt;&lt;em&gt;could&lt;/em&gt;&lt;/strong&gt; click &lt;code&gt;Add Catch-All&lt;/code&gt; and then any email sent to any address @ your domain would be forwarded whether it was configured or not. &lt;/li&gt;
&lt;li&gt;
&lt;code&gt;Alias&lt;/code&gt; column: Enter &lt;em&gt;only the name&lt;/em&gt; of the custom domain email that you want redirected. So if your custom domain is example.com, and you are setting up for the email address &lt;a href="mailto:chrisrock@example.com"&gt;chrisrock@example.com&lt;/a&gt;, then in the &lt;code&gt;Alias&lt;/code&gt; column you would put &lt;code&gt;chrisrock&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;Forward to&lt;/code&gt; column: Enter the Gmail address where you want to receive the emails.&lt;/li&gt;
&lt;li&gt;Click the ✔ to the far right to save the config.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  &lt;em&gt;Namecheap Part II&lt;/em&gt;
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;At the top click &lt;code&gt;Advanced DNS&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Scroll down to &lt;code&gt;Mail Settings&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;On that line, it should already say &lt;code&gt;Email Forwarding&lt;/code&gt;. &lt;/p&gt;

&lt;p&gt;&lt;em&gt;If it does not:&lt;/em&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Click the entry that is there to expose a dropdown&lt;/li&gt;
&lt;li&gt;Choose &lt;code&gt;Email Forwarding&lt;/code&gt; &lt;/li&gt;
&lt;li&gt;Click the ✔ to save.&lt;/li&gt;
&lt;/ol&gt;


&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  &lt;em&gt;You're done with Namecheap.&lt;/em&gt;
&lt;/h3&gt;

&lt;p&gt;You could feasibly stop here as this is the simplest setup. Anything sent to your custom domain email will now be forwarded to your Gmail account. You would need to use your Gmail address as the "From" to send replies.&lt;/p&gt;

&lt;p&gt;Continue below to setup a custom "From" address.&lt;/p&gt;

&lt;h2&gt;
  
  
  Setup Gmail
&lt;/h2&gt;

&lt;p&gt;Use this link to the original Gmail documentation on support.google.com.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;a href="https://support.google.com/domains/answer/9437157?hl=en"&gt;Send an email from your alias in Gmail&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  When Gmail setup is complete...
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Refresh the Gmail tab. &lt;/li&gt;
&lt;li&gt;Click &lt;code&gt;Compose&lt;/code&gt; to start a new email.&lt;/li&gt;
&lt;li&gt;In the New Message window, the &lt;code&gt;From&lt;/code&gt; line should now be a dropdown.
If you look, you should see your custom domain email.&lt;/li&gt;
&lt;li&gt;Send a test email: &lt;em&gt;From&lt;/em&gt; your regular Gmail address, &lt;em&gt;To&lt;/em&gt; your custom domain email. 
Put in some simple text and click send.&lt;/li&gt;
&lt;li&gt;Within a split second you should receive an email in the Gmail inbox.&lt;/li&gt;
&lt;li&gt;Open it, click Reply, click the &lt;em&gt;From&lt;/em&gt; dropdown, and choose your custom domain email.
Put in some simple text and click send.&lt;/li&gt;
&lt;li&gt;Within a split second you should receive another email in the Gmail inbox, this time &lt;em&gt;From&lt;/em&gt; the custom domain email.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  &lt;em&gt;One more thing in Gmail:&lt;/em&gt;
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;⚙Icon &amp;gt; &lt;code&gt;Settings&lt;/code&gt; &amp;gt; &lt;code&gt;Accounts and Import&lt;/code&gt; &amp;gt; section &lt;code&gt;Send mail as&lt;/code&gt; &lt;/li&gt;
&lt;li&gt;Set your preference for &lt;code&gt;When replying to a message&lt;/code&gt;.&lt;/li&gt;
&lt;/ol&gt;




&lt;p&gt;This is the setup that worked for me. If there is a problem here or something missing, comment here and I'll look to fix it.&lt;/p&gt;

</description>
      <category>portfolio</category>
      <category>gmail</category>
      <category>webdev</category>
    </item>
    <item>
      <title>If . . .</title>
      <dc:creator>ogrotten</dc:creator>
      <pubDate>Fri, 10 Jan 2020 23:07:13 +0000</pubDate>
      <link>https://dev.to/ogrotten/if-1e56</link>
      <guid>https://dev.to/ogrotten/if-1e56</guid>
      <description>&lt;p&gt;There's more than one way to skin a cat.&lt;/p&gt;

&lt;h2&gt;
  
  
  In JS, there is more than one way to return the result of an &lt;code&gt;if&lt;/code&gt;.
&lt;/h2&gt;

&lt;h2&gt;
  
  
  Standard
&lt;/h2&gt;

&lt;p&gt;There are further permutations, but here's the tried and true, simple and basic:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;if (sky == "blue") {
    setLabel(clearday)
} else {
    setLabel(weather)
}
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;






&lt;h2&gt;
  
  
  Ternary
&lt;/h2&gt;

&lt;p&gt;The &lt;a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Conditional_Operator"&gt;&lt;code&gt;ternary&lt;/code&gt;&lt;/a&gt; operator can cleanly take the place of a simple &lt;code&gt;if&lt;/code&gt; like the one above. It is concise and immediately readable.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;(sky === "blue") ? setLabel(clearday) : setLabel(weather)

&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;
&lt;code&gt;Expression&lt;/code&gt;: It must be in parenthesis, and must be a true/false result.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;?&lt;/code&gt; and then what to do with a true or truthy result from the &lt;code&gt;expression.&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;:&lt;/code&gt; and then what to do with a false or falsey result from the &lt;code&gt;expression.&lt;/code&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This can also be used as a simple way to perform a quick &lt;code&gt;ifExists&lt;/code&gt; kind of thing.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;(sun) ? setLabel(daytime) : null;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;If &lt;code&gt;sun&lt;/code&gt; has a value, then do a thing. Else, do nothing.&lt;/p&gt;




&lt;h2&gt;
  
  
  Short Circuit
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;null&lt;/code&gt;ing a ternary is neat and all, but it can get better. &lt;code&gt;if&lt;/code&gt; can be 'short circuited' into something smaller that does an &lt;code&gt;ifExists&lt;/code&gt; as well as acting on it.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;let clouds = ["fluffy", "thin", "feathery"];

if (clouds &amp;amp;&amp;amp; clouds.map(type =&amp;gt; console.log(type))) {}
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;Line 1: set an array. &lt;/p&gt;

&lt;p&gt;Line 2 says: &lt;code&gt;if&lt;/code&gt; &lt;code&gt;array is set&lt;/code&gt; &lt;code&gt;and&lt;/code&gt; &lt;code&gt;array method can run&lt;/code&gt; &lt;code&gt;then&lt;/code&gt; &lt;code&gt;do nothing&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Except we're not doing nothing here. We want the &lt;code&gt;clouds.map&lt;/code&gt; to be the final result, but only if the &lt;code&gt;clouds&lt;/code&gt; array has data.&lt;/p&gt;

&lt;p&gt;For &lt;code&gt;and&lt;/code&gt; comparisons like this to return true, &lt;em&gt;both sides&lt;/em&gt; must be true. Well, when JS sees that there are no &lt;code&gt;clouds&lt;/code&gt;, it short circuits and moves on to the next step. &lt;/p&gt;

&lt;p&gt;So, when there's data in clouds, and it returns &lt;code&gt;truthy&lt;/code&gt;, then the map can run successfully, which will also return &lt;code&gt;truthy&lt;/code&gt; . . . and we've tricked JS into doing something, &lt;em&gt;and&lt;/em&gt; a kind of bonus action of what is in the brackets.&lt;/p&gt;

&lt;p&gt;In vanilla JS this is &lt;em&gt;merely&lt;/em&gt; ok. IMO it's more clever than it is useful.&lt;/p&gt;

&lt;p&gt;However, its most practical use lay in React, where short circuiting can be used to show an iterating component when it exists.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;{clouds &amp;amp;&amp;amp; clouds.map(type =&amp;gt; {
    &amp;lt;Clouds type={type} /&amp;gt;
})}
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



</description>
      <category>javascript</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Lambda School isn't about education.</title>
      <dc:creator>ogrotten</dc:creator>
      <pubDate>Fri, 10 Jan 2020 22:18:31 +0000</pubDate>
      <link>https://dev.to/ogrotten/lambda-school-at-the-end-of-four-months-of-web-dev-2kki</link>
      <guid>https://dev.to/ogrotten/lambda-school-at-the-end-of-four-months-of-web-dev-2kki</guid>
      <description>&lt;p&gt;Just as a primer, here are my previous posts about my time in Lambda School:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://dev.toogrotten/lambda-school-my-first-2-weeks-iod"&gt;Lambda School: My first 2 weeks.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://dev.toogrotten/lambda-school-10-weeks-down-4lma"&gt;Lambda School: 10 weeks down.&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Also of note: I didn't put #beginner tag on this post.&lt;/p&gt;




&lt;h3&gt;
  
  
  &lt;em&gt;So here's the hot take:&lt;/em&gt;
&lt;/h3&gt;

&lt;h1&gt;
  
  
  Lambda School isn't about education.
&lt;/h1&gt;

&lt;p&gt;First off, I need to say out loud a couple things that you already know, just to set the perspective. &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Facebook isn't a social network, it's data science.&lt;/li&gt;
&lt;li&gt;Google isn't about search, it's about advertising.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;There's other examples that could arguably go on this list, but the point is that much of business today is about something deeper than meets the eye.&lt;/p&gt;

&lt;p&gt;Therefore, &lt;strong&gt;Lambda School isn't about education, it is a social network.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In 16 weeks, I have had meaningful conversation with &lt;em&gt;no more than&lt;/em&gt; &lt;strong&gt;&lt;em&gt;eight&lt;/em&gt;&lt;/strong&gt; salaried staff members: 4 instructors, 3 trainers in Student Success (basically HR), and the instructor's boss (I don't know the title, but that's what he was).&lt;/p&gt;

&lt;p&gt;Of the hundreds of conversations I’ve had, the vast majority were either directly with a student, or a student in a paid mentorship position. All teams were lead by a student mentor, the Team Lead. All assignments, tests and Build Week projects were graded by the TL. Organizational issues were dealt with by &lt;em&gt;their&lt;/em&gt; paid student mentors, the Section Lead. The percent-chance that any problem (technical or organizational) would be addressed by salaried staff is far smaller than a margin of error; closer to that of a statistical anomaly.&lt;/p&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;As far as I'm concerned, that is not a problem.&lt;/strong&gt;
&lt;/h4&gt;




&lt;p&gt;In my first build week (week 4 of instruction), I was using Bootstrap. I had a problem where one of my definitions wasn't showing. After some basic troubleshooting, I went to the help video channel. &lt;/p&gt;

&lt;p&gt;I know this person, a common helper TL. "I've got a quickie", I say and I explain the problem. He goes "you know... bootstrap uses a lot of &lt;code&gt;!important&lt;/code&gt; tags..."&lt;/p&gt;

&lt;p&gt;&lt;em&gt;OH! Yeah it does!&lt;/em&gt; I added &lt;code&gt;!important&lt;/code&gt;, and done. Grand total time from first problem to solution: 15m.&lt;/p&gt;

&lt;p&gt;I'd been 5+ years trying to self teach in earnest, nevermind the secondary attempts for years before that. That bootstrap problem would have resulted in posts to Stack Exchange and Reddit. Getting an answer could have taken half a day, if ever. I'd say that about half the time I did this, I wound up either working around it or just doing something else entirely.&lt;/p&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;Connection of people, and timeliness of response, is Lambda's value.&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;In my cohort of ~150, I have met, exchanged help with, laughed and complained with, and grown direct relationships with, &lt;em&gt;dozens&lt;/em&gt; of people, from 23 yr old former burger flippers to 30 something mothers of 3 to 50 somethings like myself. And while there are still names where I'm like "who the hell is that?" there is a far longer list of names that I would quite enjoy sharing a cubicle farm with.&lt;/p&gt;

&lt;p&gt;I was originally placed in a team with 6 others. It included 2 young folks that I kinda gelled with. They were well within the peer group &lt;em&gt;of my 20-somethings kids&lt;/em&gt;, not me. About a month later, we 3 picked up another. The 4 of us are relationships that I guarantee will follow us all well into our professional lives. Another team in the cohort that has 6 people that have been together since day one and they have seriously discussed starting a development house.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Relationships
&lt;/h2&gt;

&lt;p&gt;Next week, 13 January 2020, I progress into "Lambda Labs" where I will be assigned a team and will work on an 8 week project. With a very short list of exceptions, I am unconcerned about who I wind up getting teamed with. I'd like to keep the 4 amigos together, but everyone else I've seen, with very few exceptions, has been professional and helpful through every interaction I've had with them.&lt;/p&gt;

&lt;p&gt;It took me a while to realize it, but &lt;strong&gt;the relationships&lt;/strong&gt; are the true value of Lambda School. The education is good, and I have learned a lot, no question. But it is simply the means by which relationships are built. I could leave the school right now, and by playing up my life/past experience along with the education, I could land something decent as a front-end developer. But, long term, I would be worse off for it for having a smaller pool of "who you know". &lt;/p&gt;

&lt;p&gt;When I've completed Lambda, I'll be paying for the contacts and relationships that I have cultivated along the way.&lt;/p&gt;

&lt;p&gt;I'm ok with that.&lt;/p&gt;







&lt;p&gt;As of today, it has been 4 months. I am now capable of doing things in JS/React/Node that I started out wanting to do, but I had no idea what it would feel like when I completed it. It just never even occurred to me.&lt;/p&gt;

&lt;p&gt;The way Lambda School works is like this&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;4 days of instruction then the Friday "Sprint" (weekly test).&lt;/li&gt;
&lt;li&gt;3 weeks of instruction, plus a "Build Week", is a Unit. Build Week is a project with people from across the 4 units of instruction.&lt;/li&gt;
&lt;li&gt;Web Dev track starts with 4 Units and goes for 4 months.&lt;/li&gt;
&lt;li&gt;After Build Week, students are assigned a team for an 8 week “Labs” project. &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Thanks to Thanksgiving, and then Xmas/New Years breaks, the schedule was kinda weird. In December, we had 3 weeks of instruction, 2 weeks off to forget everything, &lt;em&gt;then&lt;/em&gt; the Build Week right after. But I lived.&lt;/p&gt;

&lt;p&gt;This last Build Week was for Unit 4: Back End. NodeJS, sql database, routing, testing. I'd done some self-study on Node, so it wasn't entirely unfamiliar. All that fore-knowledge was completely surpassed on day 2 of the Unit.&lt;/p&gt;

&lt;p&gt;Due to having postponed my Unit 2 (React Intro) Build Week so that I could take Team Lead training, I had to do 2 build weeks &lt;em&gt;at once&lt;/em&gt;. I can't imagine trying to do that without the extra 2 weeks (the holiday break) that I had in the middle.&lt;/p&gt;

&lt;p&gt;I completed both projects with marks of “Exceeds Expectations”. &lt;/p&gt;

&lt;p&gt;I started a little project in 2018. I worked on for probably 80 hours. Today, I’m certain that I could complete and surpass the original project if I gave it 20 solid hours. &lt;/p&gt;

&lt;p&gt;In the immediate and short term, Lambda School has been worth it. And I can see where it is stacking up to be worth it in the long term.&lt;/p&gt;

&lt;p&gt;OBTW:&lt;br&gt;
If you call me a shill, I'll call you a moron . . . both of which are baseless labels. I'm a Lambda School student in cohort Web24. If you believe, evidence free, that someone paid me in some way to make this post, I'll choose to believe, evidence free, that you like to kick small dogs and take candy from babies.&lt;/p&gt;

</description>
      <category>lambdaschool</category>
      <category>career</category>
      <category>webdev</category>
    </item>
    <item>
      <title>What font do you use in your editor of choice?</title>
      <dc:creator>ogrotten</dc:creator>
      <pubDate>Sat, 23 Nov 2019 19:29:06 +0000</pubDate>
      <link>https://dev.to/ogrotten/what-font-do-you-use-in-your-editor-of-choice-12mb</link>
      <guid>https://dev.to/ogrotten/what-font-do-you-use-in-your-editor-of-choice-12mb</guid>
      <description>&lt;p&gt;I'm participating in Lambda School (look at my profile for posts of my thoughts) who "strongly recommends" using VSCode.&lt;/p&gt;

&lt;p&gt;I've been using the VSCode default settings for years, but today as I was beginning a personal project, I got &lt;del&gt;sidetracked&lt;/del&gt; to thinking: Would a good, readable, code font actually and truly be better than VSCode's default Consolas font?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;So tell me, oh gurus of editor visuals...&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;What fonts do you use for coding?&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;(and color scheme, too, if you're feeling industrious).&lt;/p&gt;

&lt;p&gt;Everyone's opinion counts... unless you're using daylight mode with a proportional font.&lt;/p&gt;

</description>
      <category>discuss</category>
      <category>editor</category>
      <category>font</category>
    </item>
    <item>
      <title>Lambda School: 10 weeks down.</title>
      <dc:creator>ogrotten</dc:creator>
      <pubDate>Sat, 09 Nov 2019 19:33:35 +0000</pubDate>
      <link>https://dev.to/ogrotten/lambda-school-10-weeks-down-4lma</link>
      <guid>https://dev.to/ogrotten/lambda-school-10-weeks-down-4lma</guid>
      <description>&lt;h1&gt;
  
  
  Monday Nov 11...
&lt;/h1&gt;

&lt;p&gt;...begins my 11th week of Lambda School. The terse TL;DR is that, so far, it’s been a hell of an educational ride.&lt;/p&gt;

&lt;p&gt;To begin with, I would encourage you to go read the &lt;a href="https://outline.com/fSVvSB"&gt;Business Insider "article"&lt;/a&gt; about Lambda. I'll come back to it later. &lt;/p&gt;

&lt;p&gt;I posted earlier, back at the end of week 2. &lt;/p&gt;
&lt;div class="ltag__link"&gt;
  &lt;a href="/ogrotten" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--j3JhwFWJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://res.cloudinary.com/practicaldev/image/fetch/s--FWr55DuX--/c_fill%2Cf_auto%2Cfl_progressive%2Ch_150%2Cq_auto%2Cw_150/https://dev-to-uploads.s3.amazonaws.com/uploads/user/profile_image/67612/a80bb8fd-0b5b-4dc2-8ae5-e860d0428346.png" alt="ogrotten image"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="/ogrotten/lambda-school-my-first-2-weeks-iod" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;Lambda School: My first 2 weeks.&lt;/h2&gt;
      &lt;h3&gt;ogrotten ・ Sep 17 '19 ・ 4 min read&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#lambdaschool&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#webdev&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#beginners&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#career&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;
 I commented on the pace and the content, and was generally just excited to see what was to come. I could tell that a foundation was being laid not only in the material, but in the method. So I’ve been thinking about doing a follow up to that first post for quite a while, but one thing kept leading to another. 

&lt;p&gt;So let’s start with . . . &lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;The Low End&lt;/strong&gt;
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Instruction is inconsistent.
&lt;/h4&gt;

&lt;p&gt;Here’s a duh statement: The person that is delivering the knowledge affects the student’s ability to learn and retain the knowledge. This is on full display at Lambda. Without going into the people or whatever their foibles, this random consistency has sometimes hurt my ability to grok the lesson. About, say, 2x in 3 weeks do I come away from morning lecture feeling it was worthless. More on that later.&lt;/p&gt;

&lt;p&gt;On the flip side, Lambda is constantly tweaking instruction content and curriculum, and the pace of the education is always under scrutiny. No, I didn’t get this topic in the wrong place. Because while such scrutiny is a good thing for the overall organization to stay at the bleeding edge, it leads to inconsistent knowledge among a populace that is encouraged and sometimes even hired to help each other. This past week I had difficulty with an assignment, yet the Lambda curriculum had changed such that class was giving me knowledge of content that my mentors had never worked with (React Context, if you must know). However, considering those mentors being the kind of people they are, we were able to get over that hump together.&lt;/p&gt;

&lt;p&gt;But it’s a double edged sword… consistent instruction means, especially in tech education, your content is falling behind. &lt;/p&gt;

&lt;h4&gt;
  
  
  Mentoring is inconsistent.
&lt;/h4&gt;

&lt;p&gt;A little explanation is needed.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The organization is hierarchical: Student &amp;gt; Team Lead &lt;em&gt;TL&lt;/em&gt; (mentors a group of ~8) &amp;gt; Section Lead &lt;em&gt;SL&lt;/em&gt; &amp;amp; Instructor (mentors learning cohort. Mine has 150, while iOS or Data Science might have 12).&lt;/li&gt;
&lt;li&gt;Any student that applies &lt;em&gt;could&lt;/em&gt; become a TL. Any TL that applies &lt;em&gt;could&lt;/em&gt; become an SL. Instructors are on the mentoring level with SL.&lt;/li&gt;
&lt;li&gt;“Flexing” is when a student retakes a Unit (a 4 week broad topic). &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This organization method can lead to extreme variance in the competence of mentors.&lt;/p&gt;

&lt;p&gt;Class and team counts change all the time due to student Flexing (your team could lose 4 and gain 2) new cohort’s etc. Consequently, the 3 team leads I’ve had have run the gamut between “I hate you” and “I love you”. Between a TL who is never around, and a TL that offers to be available at 7am.&lt;/p&gt;

&lt;p&gt;This is what happens when a person from a random walk of life looks at the TL job as a paycheck, as opposed to the top-down mentorship, or the resume-item internship, that it’s intended to be. But how would Lambda test for or mitigate that?&lt;/p&gt;

&lt;p&gt;Realistically, as far as it goes with the low end of Lambda that I’ve experienced, it’s really not all that low. Instructor aptitude is good. And even when a lecture comes off completely worthless, learning the content is supported by static web lessons (text and video from previous lectures) as well as the cohort leadership, and even other students. And mentorship competence can even be mitigated by the student’s ability to request a switch to another mentor/TL. &lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;The High End&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;There’s a pretty good list of positives that I’ve observed, but here’s a couple.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Flexing: when a student Flexes, they are moved to a newer cohort to restart the content unit. In my case, were I to Flex, I would move from Web24 to Web25 to retake Advanced React. This is not the same as being “held back in 5th grade”. Since Lambda only gets paid for your education when you find a job and you get paid, it is therefore in everyone’s best interest that the student truly knows the material before being moved on. Flexing gives you a path to making sure you know it.
Additionally, there's plenty of opportunity and support to continue on your current track if you have both the aptitude and mental bandwidth to be able to take it all in.&lt;/li&gt;
&lt;li&gt;Pace &amp;amp; Content: 

&lt;ul&gt;
&lt;li&gt;Week 1: HTML &amp;amp; CSS.&lt;/li&gt;
&lt;li&gt;Week 3: JavaScript&lt;/li&gt;
&lt;li&gt;Week 7: Intro to React&lt;/li&gt;
&lt;li&gt;Week 10: React Contexts, Redux and Async Redux.&lt;/li&gt;
&lt;li&gt;The content of the Friday test has grown from coloring and changing the most basic elements of a webpage, up to taking the scaffold of a non-working website and giving it full CRUD operability. &lt;strong&gt;&lt;em&gt;In a 3 hour test.&lt;/em&gt;&lt;/strong&gt; The pace is very strong. My current TL described it as "drinking water from a firehose". &lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;Proper Focus: I applied for and was accepted as a TL in a part-time cohort. My own class runs 10a - 7p, mentoring for the part-time class was 5:30p - 9p. And yes, the times crossed over, which was it’s downfall for me. The loss of study time took me from “highest marks” on all daily project and Friday tests, to missing assignments and having to retake tests. The day that I decided to step back from TL/mentoring, I received exactly zero grief from anyone. Even the “boss” to whom I had suddenly given a personnel problem, said very plainly “you’re doing this for an education and that should come first”. In other words, everyone in a position to say so is clearly focused on the given education. &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Oct 28 was the day I began TL after a week of TL training, and Wed Nov 6 was the day that I stopped. The evening of Nov 5, I was NOT looking forward to the Nov 8 Sprint (Friday Test). So, on Wednesday morning, I met with a teammate and my TL. Wednesday night I “quit” being a TL and went on to spend about an hour going over content with teammates. Thursday morning: time with teammates. Thursday night: time with teammates. Friday morning: time with teammates. This is mostly time that I would not have been able to spend if I were TL. Bottom line: The Friday test result was a return to highest marks. Without that TL and team time, I’d probably still be taking that test. &lt;/p&gt;

&lt;p&gt;During my time at Lambda thus far, I’ve experienced some things that were annoying, to be sure. The Nov 8 test described AJAX with GET and POST requests… all terms that had never been used. Yes we had been doing async transactions and actual AJAX stuff, but nobody had ever used the terms. A couple weeks before on a test, there was a requirement to build a search field. Array and object methods were not new to us, but we’d never been tasked to use them in such a way. So instead of warning us about “the hard thing on the test” (which turned out to be like 4 lines) why not teach a little creativity with those methods?&lt;/p&gt;

&lt;p&gt;Yet those instances were annoying one off’s, “why would you do that?”. As yet, they don't appear to be part of a trend.&lt;/p&gt;

&lt;p&gt;But consider: usually, by the 10 week mark in doing anything, let alone a new job, you don’t even have to be particularly observant to know, intimately, the deep-seated problems. At 10 weeks, if there are problems, you'll them everywhere, getting their tendrils into everything.&lt;/p&gt;

&lt;p&gt;In the article that I mentioned at the top, Business Insider talked to 7 people about their poor experience with Lambda. Meantime, Lambda has 33 cohorts, spanning 5 major subjects, with &lt;em&gt;thousands&lt;/em&gt; of students. Yet Business Insider couldn't come up with a couple of people or direct contact with staff to arrive at a complete piece. &lt;/p&gt;

&lt;p&gt;My experience is this: Aside from the odd annoying content item, Lambda get’s a performance review of “Exceeds Expectations” from me. When I’d decided I wanted to focus on JavaScript in about April of 2015, I never imagined I’d learn that much in so little time. The procedures are clear and flexible. The staff (salaried or hourly) are generally very approachable, professional, and knowledgeable. The education is solid, and the organization is highly motivated to make sure education stays that way. Lambda doesn’t get paid until you get &lt;em&gt;paid well&lt;/em&gt; for relevant work.&lt;/p&gt;

&lt;p&gt;In closing, "Build Week" is a 4 day project crossing not only cohorts, but education tracks. Web dev, iOS, Android, UX, Data Science... all tracks have people assigned to work on projects together. I skipped a Build Week to attend TL training. Therefore, my next Build Week will be &lt;em&gt;double&lt;/em&gt; responsibilities.&lt;/p&gt;

&lt;p&gt;So, while I'm not necessarily looking forward to the next Build Week, to be perfectly honest, I can’t wait till next Build Week.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;OBTW:&lt;/em&gt;&lt;br&gt;
If you call me a shill, I'll call you a moron . . . both of which are baseless labels. I'm a Lambda School student in cohort Web24. If you believe, evidence free, that someone paid me in some way to make this post, I'll choose to believe, evidence free, that you like to kick small dogs and take candy from babies.&lt;/p&gt;

</description>
      <category>lambdaschool</category>
      <category>webdev</category>
      <category>beginners</category>
      <category>career</category>
    </item>
    <item>
      <title>Lambda School: My first 2 weeks.</title>
      <dc:creator>ogrotten</dc:creator>
      <pubDate>Tue, 17 Sep 2019 00:04:19 +0000</pubDate>
      <link>https://dev.to/ogrotten/lambda-school-my-first-2-weeks-iod</link>
      <guid>https://dev.to/ogrotten/lambda-school-my-first-2-weeks-iod</guid>
      <description>&lt;p&gt;On September 3, a 54 yr old black man (me) started Lambda School. Going "back to school" is tricky enough at this age, but Lambda School is a Commitment with a big, hard, capital C.&lt;/p&gt;

&lt;p&gt;Quick biography: I've been on and off over the last 15 years trying to self teach web dev, yet I never felt successful. I started with (the buzzword of the day back then) the LAMP Stack (Linux, Apache, MySQL, PHP). Back in about 2014-15, I just kinda stopped MEAN Stack (MongoDB, Express, Angular, NodeJS) self-instruction when this new thing called React interrupted and started getting traction. It seemed that the things I was learning were aging by the day, and I didn't feel as if I was accomplishing anything. To be fair, that time frame was pretty much the height of the &lt;a href="https://dev.to/banesag/javascript-fatigue--bhh"&gt;"JavaScript Fatigue"&lt;/a&gt; days. It seemed that new, high-hope frameworks and tools were being released on an hourly basis.&lt;/p&gt;

&lt;p&gt;Even with all that going on, it was clear that I needed more formal training in order to get over the hump to be, and feel, some success and progress. All these years later, I finally have the opportunity and time to get into something. &lt;/p&gt;

&lt;p&gt;Long story short (too late), I had seen talk of "Lambda School" pop up occasionally. On Reddit, the CEO would regularly jump into toe-to-toe conversations with haters, politely explaining truths to given misconceptions. &lt;/p&gt;

&lt;p&gt;I've decided to do a few blogposts during my learning, because I've watched LS get ridden pretty hard on Reddit and elsewhere. I figured I may as well share a student's perspective to try and even out the tables a bit.&lt;/p&gt;

&lt;p&gt;Right off the top, I need to set the perception right: Anyone that lumps Lambda School in with the huge stack of 12 week "Boot Camp" schools needs to do the slightest bit of reading.&lt;/p&gt;

&lt;p&gt;From what I've seen, Boot Camps tend to be laser focused on exactly the one thing... web dev, iOS, Android, Ruby on Rails, etc. 12ish 40-50 hour weeks and you come out with knowledge in the project, but also tens of thousands of dollars less in your pocket. This is then capped with varying degree of placement help. These were the yellow-flags that kept me from diving in to one. Well, Lambda School isn't "class"... it's &lt;em&gt;school&lt;/em&gt;. 9 months of 40 hr weeks, followed up with continuing ed and placement assistance until you're hired. It is essentially the same amount of in-class time that you'd put into a 2 year or 4 semester degree. My September 3 session doesn't officially end until June 26, 2020.&lt;/p&gt;

&lt;p&gt;About a week before school started, I received the calendar for the Web Developer track. To my surprise, almost shock, this is a "Web Dev Class" that spends a week on Java, Node and Python. 1 week each on Algorithms and Data Structures, &lt;em&gt;separately?&lt;/em&gt; doing the math, a 40 hr week is similar time spent in a traditional 1 semester class.&lt;/p&gt;

&lt;p&gt;Suddenly I was looking forward to it. &lt;/p&gt;

&lt;p&gt;Having self taught off and on for too many years, there were aspects of web development that I felt were "very familiar" to me. I could build a web page with a fair design and connect it to a back end; I'd even built a couple of personal projects with a back end. Therefore, I was afraid that the first few weeks (HTML, CSS, JS) would bore me to tears and I'd have a hard time mentally making it over that hump to the new, good stuff.&lt;/p&gt;

&lt;p&gt;Thus far, that isn't the case. The pace in "lecture" is good. Combined with daily projects and an end-week "Sprint" (let's just call it what it is: a unit test) there so far is nary a dull moment. Though I have, and will keep to myself, opinions about the instruction, the pace and true content has kept my interest. And this doesn't even begin to mention the little HTML/CSS add-ons I learned that round-out the knowledge I already had.&lt;/p&gt;

&lt;p&gt;Today, Week 3 starts in our first JavaScript exposure at a level that some would consider more advanced. In my previous experience, most videos or classes don't address JS arrays, objects, or functions, until well after the beginning lessons. Lambda is able to start here in earnest because of the Precourse Full Stack Web Development course that is &lt;em&gt;required&lt;/em&gt; for all participants. We all had to take, or test out of, the Precourse before the real class started.&lt;/p&gt;

&lt;p&gt;Upcoming Week 4 is a Build Week where we take the base 3 weeks of knowledge and turn it into a team-built project, across the different courses that Lambda has: Web Dev (my track), iOS, Data Science, UX. I'm still a little hazy on the details of it, but teaching group dynamics are a true taste of the real world and will only serve to strengthen the student.&lt;/p&gt;

&lt;p&gt;As said, I'm only 2 weeks into this, the 24th Web Dev session, but I can see where this is headed and I'm looking forward to it.&lt;/p&gt;

&lt;p&gt;Will update soon.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;OBTW:&lt;/em&gt;&lt;br&gt;
Call me a shill, I'll call you a hater . . . both of which are baseless labels. I'm a Lambda School student in cohort Web24. If you believe, evidence free, that someone paid me in some way to make this post, I'll choose to believe, evidence free, that you like to kick small dogs and take candy from babies. &lt;/p&gt;

</description>
      <category>lambdaschool</category>
      <category>webdev</category>
      <category>beginners</category>
      <category>career</category>
    </item>
    <item>
      <title>"XY Problem" in the Wild.</title>
      <dc:creator>ogrotten</dc:creator>
      <pubDate>Sat, 20 Oct 2018 09:58:13 +0000</pubDate>
      <link>https://dev.to/ogrotten/xy-problem-in-the-wild-2ge9</link>
      <guid>https://dev.to/ogrotten/xy-problem-in-the-wild-2ge9</guid>
      <description>&lt;p&gt;&lt;strong&gt;&lt;em&gt;From the Wikipedia &lt;a href="https://en.wikipedia.org/wiki/XY_problem"&gt;XY Problem&lt;/a&gt; entry.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The real issue ("X") of the person asking for help is obscured, because instead of asking directly about issue X, they ask how to solve a secondary issue ("Y") which they believe will allow them to resolve issue X. &lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;For the last month or so I've been making a card game as a personal project. I'm using JS and the &lt;a href="http://phaser.io/"&gt;PhaserJS&lt;/a&gt; game engine to get better at both because why not. Tonight, I was working on building a pyramid of cards, setting up an abstraction. When you click on a card, it gets an array of the selected cards children, ones it covers. It then goes to all children cards and removes the clicked card from the childs list of parents. When any card's parent list is zero length, the card goes face up.&lt;/p&gt;

&lt;p&gt;But it wouldn't work. Instead of removing the one card as a parent, it was just completely clearing the array. Why? What the hell is wrong with you?&lt;/p&gt;

&lt;p&gt;But wait. . . What? When the javascript &lt;code&gt;array.filter&lt;/code&gt; runs, &lt;em&gt;ALL&lt;/em&gt; the relevant variables are becoming undefined? What, why?&lt;/p&gt;

&lt;p&gt;Here's a pic of chrome devtools &lt;a href="https://i.imgur.com/c3iHyhv.png"&gt;before the &lt;code&gt;filter&lt;/code&gt;&lt;/a&gt;,&lt;br&gt;
and then here it is &lt;a href="https://i.imgur.com/nwa6XQj.png"&gt;after the &lt;code&gt;filter&lt;/code&gt;&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;As you can see in the list of variables on the right, javascript has lost its mind, and is clearing my variables for seemingly no reason (or so I thought).&lt;/p&gt;

&lt;p&gt;So I dig and dig. Web searches, info about &lt;code&gt;array.filter&lt;/code&gt;, etc... and nothin works. Finally I break down and post to Stack Overflow. A Nice Guy (rarity these days) hops on the comments pretty quickly and makes some suggestions, including a couple of links on variable scope. &lt;/p&gt;

&lt;p&gt;. . . Do you see it? the XY Problem?&lt;/p&gt;

&lt;p&gt;I spent a good 5 hours trying to figure out why my variables were being cleared, only to be reminded that they were completely out of scope inside the callback function of &lt;code&gt;array.filter&lt;/code&gt;. I mean, I knew that's how it should work but I was so zoned in on "shit disappearing" that I couldn't see the forest for the trees. &lt;/p&gt;

&lt;p&gt;Even better (or worse, depending on how you look at it), with the blinders on, I completely missed the &lt;em&gt;actual&lt;/em&gt; problem. I had fully forgotten that the real question at hand had nothing to do with variable scope involving callback functions. It was about an array being cleared.&lt;/p&gt;

&lt;p&gt;Once I reminded myself of what the true problem was, it took an almighty several seconds to fix it. &lt;/p&gt;

&lt;p&gt;&lt;em&gt;The true solution?&lt;/em&gt; &lt;strong&gt;&lt;em&gt;Look at line 131 in the images.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;




&lt;p&gt;The moral of the story is this: &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;When you hear hooves, think horses, not zebras.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;If you're having an &lt;em&gt;impossible&lt;/em&gt; problem where something reliable seems to have gone completely off the deep end, you're most likely looking in the wrong place for the problem. Take a step back, defocus for a minute, grab the &lt;a href="https://rubberduckdebugging.com/"&gt;rubber duck&lt;/a&gt; off your desk and have a nice relaxed conversation.&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>xyproblem</category>
      <category>learnprogramming</category>
    </item>
  </channel>
</rss>
