<?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: Cody Crumrine</title>
    <description>The latest articles on DEV Community by Cody Crumrine (@the3rdc).</description>
    <link>https://dev.to/the3rdc</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%2F15317%2Fa19c1809-f3aa-4554-b43c-2b59b876eba6.jpeg</url>
      <title>DEV Community: Cody Crumrine</title>
      <link>https://dev.to/the3rdc</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/the3rdc"/>
    <language>en</language>
    <item>
      <title>Development with Walkie Talkies doesn't sound fun.</title>
      <dc:creator>Cody Crumrine</dc:creator>
      <pubDate>Mon, 13 Jan 2020 13:08:59 +0000</pubDate>
      <link>https://dev.to/the3rdc/development-with-walkie-talkies-doesn-t-sound-fun-4kg8</link>
      <guid>https://dev.to/the3rdc/development-with-walkie-talkies-doesn-t-sound-fun-4kg8</guid>
      <description>&lt;p&gt;This is the second article I've seen about Microsoft Teams supporting a walkie talkie like "push to talk" feature with there right Samsung phone. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://news.samsung.com/us/samsung-microsoft-verizon-partner-digitally-enable-frontline-workers/"&gt;https://news.samsung.com/us/samsung-microsoft-verizon-partner-digitally-enable-frontline-workers/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I happen to be a big fan of Microsoft for the last few years. They're making a lot of smart decisions to win credibility with developers that wrote them off as enemies of open source long ago.&lt;/p&gt;

&lt;p&gt;But I first saw this feature in an ad that says something like "reach your co-workers 24/7" and that just sounds awful.&lt;/p&gt;

&lt;p&gt;Chat apps like Slack, Teams and Zoom have brought alot of value to distributed teams - and I'm glad we have them. But nothing comes without downsides, and I also think we need to worry any the disappearance of "deep work". &lt;/p&gt;

&lt;p&gt;I'm not for saying everyone should be undisturbed with their headphones on all the time, but I do think we need to intentionally limit and manage or connectivity (so... 'Yes' to being undisturbed with our headphones in &lt;em&gt;more&lt;/em&gt; of the time than we are now). &lt;/p&gt;

&lt;p&gt;Turning my phone into a virtual walkie talkie feels like a big step in the wrong direction.&lt;/p&gt;

&lt;p&gt;What do you think? Am I just being a grumpy old curmudgeon? Is bad news for productivity? Or is it just a cool new feature?&lt;/p&gt;

</description>
      <category>work</category>
      <category>dev</category>
      <category>communication</category>
    </item>
    <item>
      <title>PHP is still awesome (even though it's Awful!)</title>
      <dc:creator>Cody Crumrine</dc:creator>
      <pubDate>Mon, 13 Jan 2020 03:54:01 +0000</pubDate>
      <link>https://dev.to/the3rdc/php-is-still-awesome-even-though-it-s-awful-5ga8</link>
      <guid>https://dev.to/the3rdc/php-is-still-awesome-even-though-it-s-awful-5ga8</guid>
      <description>&lt;p&gt;When I got into web development PHP was the default. It's what the web was built on. (To be fair - it seemed like half the web was WordPress). LAMP was the defacto stack - and you were expected to know it.&lt;/p&gt;

&lt;p&gt;Since then PHP seems to have fallen out of style hard. I still work on a SAAS product with a mainly PHP back-end, and often have to answer "why PHP?" The truth there is that it's been around since that was the standard and there's no meaningful reason to change it (at least it's not Ruby!) But it got me thinking - are there scenarios where I'd still reach for PHP first today? Yes.&lt;/p&gt;

&lt;p&gt;Now I'll still be the first to roll my eyes and say PHP is "awful". It's got no shortage of annoyances. Two of my favorites are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The type juggling! Being a loosely typed language is enough to turn a lot of people off in it's own - but PHP seems to make some exceptionally unintuitive decisions. And undefined variables? Meh, let's just throw a warning and give it a try.&lt;/li&gt;
&lt;li&gt;The most inconsistent function names and signatures I've ever seen!&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;(Go ahead and share your favorite gripes in the comments, we'll all have a good chuckle)&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;But here's my humble list of things I think are really great about PHP.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Web First&lt;/strong&gt;&lt;br&gt;
PHP was designed for websites. It has the request/response lifecycle built into it's DNA. Query params and request payloads are available in super-globals. STDout is the response by default.&lt;/p&gt;

&lt;p&gt;In any other language I've used to build a web site/app I start with importing the right package/library to run a webserver. I don't have to do that in PHP. &lt;/p&gt;

&lt;p&gt;Yes, that means I need Apache, nginx, lighttpd or similar. But it also means that I can write code pretty oblivious as to which one of those is in use. It also generally means that each request will be served in it's own thread.&lt;/p&gt;

&lt;p&gt;In my experience there's a lot of boilerplate to serve content over http in other languages that's just "already there" in PHP.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Easy to work with APIs/Databases&lt;/strong&gt;&lt;br&gt;
I do a lot of work in the data integration space, and PHP makes it pretty easy to talk to other services. &lt;/p&gt;

&lt;p&gt;Using curl is simple and nicely structured (if you don't mind looking up a lot of flags) and Oauth is a breeze, so REST APIs are pretty easy.&lt;/p&gt;

&lt;p&gt;PHP's built in SOAP client is surprisingly good to (considering how much I hate working with SOAP APIs) - just point it at a valid WSDL and every method is defined for you. &lt;/p&gt;

&lt;p&gt;Connectivity to most of the popular relational databases comes out of the box - with more available with right drivers. &lt;/p&gt;

&lt;p&gt;Also, PHP has been ubiquitous for long enough that msjor platforms offering an SDK for their API will include a PHP variant.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Easy to Hire/Train&lt;/strong&gt;&lt;br&gt;
Again, PHP has been so popular for so long we have no trouble finding developers who are comfortable with it (even if they say "well I prefer python but...)" &lt;/p&gt;

&lt;p&gt;But I've also had several people who are right out of college - which seems to mean they know either Java or C++ and for some reason CSS (weird mix... I'd like to see these curriculums). I've never had much trouble getting them spun up on PHP.&lt;/p&gt;

&lt;p&gt;Some folks will point out that the ease to jump into can be dangerous (a lot of people trying to walk before they run - and with the aforementioned loose types). That's true, and it's a way JS and PHP seem similar. But in a setting with good mentorship it's been an asset to us.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;So when should I use PHP?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Here's a few examples of times I would reach for PHP first.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Writing a RESTful API.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Writing a back-end that needs to interface with a lot of different platforms and APIs.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Any web app that needs to serve dynamic content from a DB but does &lt;em&gt;not&lt;/em&gt; require any real-time interaction between users (like a blog or a forum).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;An app that I want to be easily "moddable" or have a "plugin ecosystem". Though NodeJS is a good contender here to.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So... Gimme your thoughts! What did I miss that you love or hate about PHP. Is it dead? Let me know. ; )&lt;/p&gt;

</description>
      <category>php</category>
    </item>
    <item>
      <title>The #1 Skill to Train in 2020 to Boost your Development Career!</title>
      <dc:creator>Cody Crumrine</dc:creator>
      <pubDate>Mon, 06 Jan 2020 20:25:31 +0000</pubDate>
      <link>https://dev.to/the3rdc/the-1-skill-to-train-in-2020-to-boost-your-development-career-4g35</link>
      <guid>https://dev.to/the3rdc/the-1-skill-to-train-in-2020-to-boost-your-development-career-4g35</guid>
      <description>&lt;p&gt;I see a lot of posts like this, trying to help folks figure out which of the latest greatest technologies and specializations are worth investing some serious time in. They seem to be especially popular at the start of a new year.&lt;/p&gt;

&lt;p&gt;So I'll throw my hat in and call out the #1 skill that I think:&lt;br&gt;
a) Has brought me farthest in our industry.&lt;br&gt;
b) Has helped Junior Devs become Senior Devs at our company&lt;br&gt;
c) Is the first thing I look for in a new hire.&lt;/p&gt;

&lt;p&gt;And guess what?&lt;/p&gt;

&lt;p&gt;It's not Vue, React, Svelte or the next hot framework.&lt;br&gt;
It's not Rollup or Webpack.&lt;br&gt;
It's not knowing the latest best practices. &lt;br&gt;
It's not being comfortable with our deployment tools or development paradigm.&lt;br&gt;
It's not Data Science, ML or AI.&lt;br&gt;
It's not Python or NodeJS&lt;br&gt;
It's not AWS, GCP or Azure&lt;br&gt;
And it sure isn't knowing how to reverse a linked list...&lt;/p&gt;

&lt;p&gt;It's all about &lt;em&gt;attitude&lt;/em&gt;. &lt;/p&gt;

&lt;p&gt;Specifically it's about what some people call the "Hacker Mentality" or "Tinker Mindset". I boil it down to the willingness to "try another way" until something works.&lt;/p&gt;

&lt;p&gt;The more exciting and rewarding work you get into as a developer - the more often you'll be faced with tasks that have no clear solution. The first thing you try won't work. &lt;/p&gt;

&lt;p&gt;Or it will work - but then it won't when it has to scale to larger data sets. &lt;/p&gt;

&lt;p&gt;Or it will work - but then you won't be allowed to do it that way because of security (cough:bureaucracy:cough) constraints.&lt;/p&gt;

&lt;p&gt;Or it &lt;em&gt;should&lt;/em&gt; work - except the documentation for that API you're using is 3 versions out of date.&lt;/p&gt;

&lt;p&gt;Or it will work with your creds - but not with mine...&lt;/p&gt;

&lt;p&gt;You get the point.&lt;/p&gt;

&lt;p&gt;You will come to a point where the obvious things to try are used up. You'll need to try things that don't make sense. You'll need to throw something into a black box just to see what comes out. You may need to put a console log in every 3 lines. &lt;em&gt;You'll need to resist giving up after the 4th try - because it might work on the 5th.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Does this all sound a bit obvious?&lt;/p&gt;

&lt;p&gt;I thought so too - but once I found myself managing other developers I was amazed to find how uncommon this was. I've worked with a lot of otherwise very capable developers who would simply write a task off as impossible after their first two attempts weren't successful.&lt;/p&gt;

&lt;p&gt;You could encourage them to experiment a little more - give them a few things to try - but it was hard to get it to stick.&lt;/p&gt;

&lt;p&gt;On the other hand, I worked with a guy who was a part time electrician before we hired him to do QA work. He played in a dart league on the weekends - and after hanging out at this software company for a while he decided he wanted to setup a website to track the league stats and asked me to take a look at his code.&lt;/p&gt;

&lt;p&gt;He'd built it with php, html and JS. And it was awful code. He'd done everything wrong. I could tell he didn't even entirely understand that the php ran on the server and the js ran on the users browser. It was all shoved in the same file. Some of the worst code I've ever seen.&lt;/p&gt;

&lt;p&gt;But it worked.&lt;/p&gt;

&lt;p&gt;I would hire a hundred developers like that.&lt;/p&gt;

&lt;p&gt;Because I can teach you languages.&lt;br&gt;
I can teach you separation of concerns.&lt;br&gt;
I can teach you frameworks and standards.&lt;br&gt;
I can teach you REST and SOAP and ODBC connections.&lt;/p&gt;

&lt;p&gt;But the disposition it takes to make it to a working solution with nothing but Google and determination? &lt;/p&gt;

&lt;p&gt;I can't teach that. &lt;/p&gt;

&lt;p&gt;Be that person that will figure out how to do the most with what you've got - that person who's willing to get creative and "try another way" - and you'll be the person everybody wants on their team.&lt;/p&gt;

&lt;p&gt;That's my career advice for 2020.&lt;/p&gt;

</description>
      <category>development</category>
      <category>programming</category>
      <category>career</category>
    </item>
  </channel>
</rss>
