<?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: rodney ringler</title>
    <description>The latest articles on DEV Community by rodney ringler (@rodneyringler).</description>
    <link>https://dev.to/rodneyringler</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%2F21581%2F45ab329c-1d9c-4e3f-bfc3-a29d44fe8705.jpg</url>
      <title>DEV Community: rodney ringler</title>
      <link>https://dev.to/rodneyringler</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/rodneyringler"/>
    <language>en</language>
    <item>
      <title>Old Dogs, New Tricks for a Software Developer</title>
      <dc:creator>rodney ringler</dc:creator>
      <pubDate>Sun, 11 Feb 2018 15:19:34 +0000</pubDate>
      <link>https://dev.to/rodneyringler/old-dogs-new-tricks-for-a-software-developer--55nj</link>
      <guid>https://dev.to/rodneyringler/old-dogs-new-tricks-for-a-software-developer--55nj</guid>
      <description>&lt;p&gt;Recently, I switched companies and find myself having to learn a whole new way of developing. I had spent the last 6 years at a complete Windows/.NET shop. Everything was C#, Windows servers, SQL Server dbs, Visual Studio, TFS, the Windows/.NET life. It was a very homogeneous architecture, and all the developers were C# experts. &lt;/p&gt;

&lt;p&gt;At my new company, even though I was recruited for my C#/.NET expertise, I found myself being handed a Mac for my development machine and a whole different world. They use mainly linux servers. I found out that .NET is really only used for a few .NET core api’s running on linux(arrgghh). They have a complete mismatch of platforms/languages/architectures. It is a lot of php, node js, python, and go on the backend, and almost every frontend you can think of(angular, django/python, vue, react, straight html, etc.). They are completely AWS cloud. All of the developers live in the bash terminal window with some sort of code editor(vs code, sublime, atom, etc.) instead of a full blown ide.&lt;/p&gt;

&lt;p&gt;My new development team could not believe that anyone would not develop on a mac. They have this belief that full blown ide’s are overly complex and a terminal window, code editor, and console print statements are the best way to debug. Not to be an elitist programmer, this seems fine for simple stuff, but a complex multithreaded application needs more than console log statements to debug.&lt;br&gt;
Well, this was quite a change for me, but I had made the switch because I was getting bored, wanted to learn new things, and see what an enterprise web shop with a bunch of youngsters was like. Little did I know how much learning I would be doing. May be it is a mid life crisis, who knows. I did grow a beard for the first time and get a tattoo. I am beginning to feel cool and hip again. &lt;br&gt;
Now to the point of the article, my observations, on the pros/cons of these 2 very different environments and architectures.&lt;/p&gt;

&lt;p&gt;The Mac as a development machine. I like it. I find myself hating to admit it but a mac is a pretty sweet machine. I do have Parallels and a Windows 10 vm for those days when I want to do some hard core C# stuff, but I find myself living more and more on the mac in a terminal window and vs code. &lt;/p&gt;

&lt;p&gt;Speaking of the terminal window. This is kind of full circle for me. I started on a vax/vms terminal and some unix boxes back in the early nineties. I like the intimate nature of the terminal window and being closer to the os. That said I am still a fan of nice tools that handle lower level stuff for you. The geek in me likes the terminal window. The proficient experienced developer in me likes a good set of tools to handle lower level stuff.&lt;/p&gt;

&lt;p&gt;Code editors versus a full blown ide. For node, python, php, and simplier things I am starting to like vs code. I have settled on it over sublime and atom. Maybe it is my visual studio roots but I do like it better. I can do some basic debugging in it, and it integrates well with git. But nothing beats a full blown ide for serious development. In my opinion, the full Visual Studio experience is hard to beat. Its tool set is unmatched. I find most of the young developers I work with do not like its steep learning curve. They find it to complicated and do not want to invest the time to become proficient with it. I think this is a little short sited, but most of what they are doing are projects that do not require visual studio. Creating an api that queries a db and returns some json data is not rocket science. Also, since it is mostly a mixed environment and linux based a lot of visual studio’s benefit are diminished. But in a plug to Microsoft and Visual Studio they have been adding a lot to their linux tooling.&lt;/p&gt;

&lt;p&gt;Many languages. I have never been in such a schizophrenic environment. It is flavor of the day on steroids. To their defense some of this is due to acquisitions. The pro of this is it allows a lot of freedom and the choice to use a language best suited for a particular task. The con of this is that there is a ton of technical debt, and everyone becomes a master of all and an expert of none. I find this the biggest downside. Everyone is what I would call a hack at a bunch of languages but not a master of any. There is a benefit to being an expert in the language and platform you develop in. You know the best practices, best design patterns, latest features and trends, etc. I believe you develop cleaner more easily maintained and scalable code this way. To me this is the biggest downside I see to my new environment. But from a learning new things standpoint, it is nice to get to play in a lot of languages instead of only C# everyday.&lt;/p&gt;

&lt;p&gt;In summary, I think somewhere in the middle of these 2 environments is probably the best of both worlds. Selfishly, it has been great to get the learning and exposure to all of these languages, platforms, and trends. But if it was my company I would definitely drive to some sort of defined architecture.&lt;br&gt;
I am surprised how much I like the mac, terminal window, and vs code. It is a nice tool set for small tasks.&lt;/p&gt;

&lt;p&gt;I look forward to more learning and growing. Never get too bias or stuck in your platform of expertise to not try new things with an open mind. I try to live by this in life and software development.&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>webdev</category>
      <category>career</category>
      <category>discuss</category>
    </item>
    <item>
      <title>Zen and the art of programming</title>
      <dc:creator>rodney ringler</dc:creator>
      <pubDate>Fri, 09 Jun 2017 15:28:52 +0000</pubDate>
      <link>https://dev.to/rodneyringler/zen-and-the-art-of-programming</link>
      <guid>https://dev.to/rodneyringler/zen-and-the-art-of-programming</guid>
      <description>

&lt;p&gt;Zen and the Art of Programming&lt;/p&gt;

&lt;p&gt;As a teacher of programming, I come across a lot of new developers that are just like I was earlier in my career. They see software projects as finite things. Something to be built and finished. There are deadlines. There are so many more projects. This mindset leads to a lot of stress and an overwhelmed feeling. How can I get all of the functionality built? It is going to take forever, and I just spent 3 hours on a simple bug that should have taken 5 minutes.&lt;br&gt;
Relax. Software programs are not a finite thing you build and finish. They are more like a living organism that grows and changes over time. They are never done growing, and unlike a real living being, they rarely die. I have software I wrote over 20 years ago still in production. Think of Microsoft Word. A word processing program that has been around since the 80’s. The first version came out in 1983. It is still growing and evolving. Microsoft still releases new versions.&lt;/p&gt;

&lt;p&gt;When you view a software system as a living being that grows and evolves it changes your whole mindset. It is not about completing the project. It is about finishing this phase. What doesn’t make phase 1 can come in phase 2. On a side note, you see this evolution in the Software development lifecycle models. The industry used to use the classic Waterfall method. You gather all of the requirements, build every possible feature and then release the product. Done. Finish. Well this didn’t work so well so the industry moved to Agile, where you are never finished. You just release new features every couple weeks. To now, Devops. Where you continuously build, test, and deploy. It is the industry progression of viewing software as a finite object that is built to a living organism that is fed and maintained on a daily basis.&lt;/p&gt;

&lt;p&gt;As a developer the sooner you get to this mindset the better. I find it much more relaxing and sustainable. No longer do you need to stress about getting all of the features built and finished. You just focus on today and what feature you want to add today. Each day you make the system better. One day at a time. Progress not perfection. Everyday when you go home you know you software system is better than the day before. Next thing you know, you look back a few months later and it is amazing how many features and pieces of functionality have been added. It is also amazing, given the constant changes in technology and business, how many new features you need to add. All in due time. One day at a time.&lt;/p&gt;

&lt;p&gt;I recently taught a beginner C# class. It was 4 weeks long on Tuesday and Thursday nights for 3 hours with one Saturday. I told the students the first night that we would build a full functioning card game application that could play Blackjack, Poker, and War by the end of the class and it would include multiple players and games and remember a players game history. They thought I was kidding. They thought it a noble effort but not something we could actually do. After all they were new to programming and C#. But each day we bit off a new piece of the pie and slower but surely we whittled away. I told them all along not to focus on the whole effort or all the things we needed to do. Each night just focus on the piece we were doing that night. I even told them that maybe we won’t finish it. Maybe it isn’t reasonable. Who cares if we finish. It’s the journey not the destination. Enjoy the ride. Have fun. Focus on just what we need to do today. If we don’t finish today we’ll finish the next class. No worries.&lt;/p&gt;

&lt;p&gt;But in the end we did finish at least the initial functionality of the games (Remember programs are never finished. We can always add more to it). And they did enjoy it. They weren’t overwhelmed and stressed by the effort. They enjoyed the journey knowing that if we didn’t finish tonight we would at least make it better tonight. They left the class with a working program but also many more changes they can build to continuously grow and evolve the system.&lt;/p&gt;

&lt;p&gt;Since I started viewing software as a living system that grows and evolves everyday. I have learned to enjoy the art of programming much more. Everyday is spent teaching, growing, and learning as I evolve along with the system I am building. It is a journey we are traveling together.&lt;/p&gt;


</description>
      <category>softwaredevelopment</category>
    </item>
  </channel>
</rss>
