<?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: Kyle Johnson</title>
    <description>The latest articles on DEV Community by Kyle Johnson (@kyleljohnson).</description>
    <link>https://dev.to/kyleljohnson</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%2F70420%2F30ddba56-235e-4d8f-a777-057f4d80ba35.jpg</url>
      <title>DEV Community: Kyle Johnson</title>
      <link>https://dev.to/kyleljohnson</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/kyleljohnson"/>
    <language>en</language>
    <item>
      <title>My Random Thoughts on the Future of Software Development with AI</title>
      <dc:creator>Kyle Johnson</dc:creator>
      <pubDate>Fri, 07 Apr 2023 22:47:20 +0000</pubDate>
      <link>https://dev.to/kyleljohnson/my-thoughts-on-the-future-of-software-development-with-ai-24mi</link>
      <guid>https://dev.to/kyleljohnson/my-thoughts-on-the-future-of-software-development-with-ai-24mi</guid>
      <description>&lt;p&gt;With the rise of ChatGPT many things are changing as we speak, especially software development. Companies are using these ChatGPT like tools to increase developer velocity. While that's not a bad thing, I have some concerns. It will change the field I'm passionate about into a field that lacks creativity as AI advances. It will be like working in a car factory on an assembly line.  Developers will not be judged by the quality of their code but by how well they can input code requirements into a ChatGPT like tool so it can spit back code. (I left out the word quality there). &lt;/p&gt;

&lt;p&gt;That being said....&lt;/p&gt;

&lt;p&gt;I can see degree requirements becoming less and less and/or you will need to have a prompt engineering certification to get a software developer job. &lt;/p&gt;

&lt;p&gt;I can see software developer interviews changing to where you will have to write a prompt in ChatGPT to produce certain code. You will then have to review the code and improve it where necessary (code review). &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--D6uHNKML--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0jq98b5zq3l986c4wj05.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--D6uHNKML--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0jq98b5zq3l986c4wj05.png" alt="Image description" width="658" height="686"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Y_JDlxkQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ds3omd37fq08c0fs38w9.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Y_JDlxkQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ds3omd37fq08c0fs38w9.jpg" alt="Image description" width="658" height="407"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I can see code review/scanning/linter tools really taking off by marketing themselves as anti-ChatGPT code quality tools.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--swrMioAF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0hhigi2x7ptwv3m9d337.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--swrMioAF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0hhigi2x7ptwv3m9d337.png" alt="Image description" width="658" height="307"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;With all seriousness, the days of Jr. Developers are over. Some will argue that day came years ago but AI is making it official. &lt;/p&gt;

&lt;p&gt;Entry into this field will require:&lt;/p&gt;

&lt;p&gt;Knowledge of a language (Advance)&lt;br&gt;
Programming Algorithms  (Advance)&lt;br&gt;
Software Design knowledge (Intermediate - Advance)&lt;br&gt;
Prompt Engineering knowledge (Basic - Intermediate)&lt;/p&gt;

&lt;p&gt;There will be no need to hire someone with basic programming skills and train them up. With AI a part of the development process, that would be a waste of time and money. Whereas now it's cost saving (I see you shaking your head).&lt;/p&gt;

&lt;p&gt;As AI advances, the higher the bar will get because you will have to contribute to the AI.&lt;/p&gt;

&lt;p&gt;Colleges and universities will have to up their game and change what they teach and to what depth, putting more focus on the things mentioned above.&lt;/p&gt;

&lt;p&gt;Things are happening fast. I actually think all of this will happen in the next couple of years. I wouldn't be surprised if colleges start offering technical writing/prompt engineering degrees by next spring.&lt;/p&gt;

&lt;p&gt;Sharpening those skills folks. LeetCode will get hot!&lt;/p&gt;

&lt;p&gt;I can honestly see a day, in the near future, where a developer sits down, types in the code requirements and code gets generated. They review it, compile it and then create a pull request that when approved pushes it into a QA environment for someone else to test. ChatGPT wrote the code, we're good! I know this is not the way (in my Mandalorian voice), I'm being sarcastic here but it's happens, I have seen it.  And by the way you are taught/encouraged to do this to meet a sprint deadline. &lt;/p&gt;

&lt;p&gt;Forget two week sprints, two day sprints here we come.&lt;/p&gt;

&lt;p&gt;What if these tools could give you a system design/architecture? I haven't tried it yet, maybe it can now but then the end will be near. Okay, I'm exaggerating a bit.&lt;/p&gt;

&lt;p&gt;Feel free to laugh, cry, call me crazy and/or comment but there is no denying this field will change.&lt;/p&gt;

&lt;p&gt;I love to teach and mentor developers so what is happening is really interesting to me. I'm passionate about software development so wherever AI takes it, I will be on that train.&lt;/p&gt;

&lt;p&gt;These are just my thoughts. &lt;/p&gt;

</description>
    </item>
    <item>
      <title>The #1 Mistake Developers Make</title>
      <dc:creator>Kyle Johnson</dc:creator>
      <pubDate>Mon, 15 Jul 2019 23:22:01 +0000</pubDate>
      <link>https://dev.to/kyleljohnson/the-1-mistake-developers-make-5ff5</link>
      <guid>https://dev.to/kyleljohnson/the-1-mistake-developers-make-5ff5</guid>
      <description>&lt;p&gt;I have been doing this thing called software development for over two decades and I consistently see developers make the same bad mistake. Then they are wondering why they are not making the money they think they should make, get zero chances for promotions and are constantly frustrated when they come across programming/application issues.&lt;/p&gt;

&lt;h2&gt;1. Developers Do Not Learn The Whole Environment Surrounding Their Code&lt;/h2&gt;

&lt;p&gt;From my experience, most developers today are specialist. There is nothing wrong with that but there will be definitely frustrations that come with that. If a problem happens in your code that is not initiated from your code you will have a hard time finding the problem because you have no clue about the environment surrounding your code. &lt;/p&gt;

&lt;p&gt;For example let's say you are a web developer and the minute you deploy your code  to the server it blows up (dev language). I have seen time and time again developers spend hours looking through the code for a problem or better yet searching Stack Overflow. The one reason they do this is because that is the only place they are familiar with. They have no clue how a web application interacts with the underlying web server, DBMS, or operating system. I have seen web developers where all they know is a server-side language and some HTML. &lt;/p&gt;

&lt;p&gt;I don't know how many times a developer has asked me for help with an application issue and it had nothing to do with the code.&lt;/p&gt;

&lt;p&gt;I will admit some places have 100 person teams where if you have a server or database issue you can just IM someone for help but keep in mind that you have to wait on someone for help and it makes you less productive. Why not just spend some time learning the environment surrounding your code. It can't hurt. Knowledge is power.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Three Aspects Of A Good Manager</title>
      <dc:creator>Kyle Johnson</dc:creator>
      <pubDate>Fri, 12 Jul 2019 19:36:40 +0000</pubDate>
      <link>https://dev.to/kyleljohnson/three-aspects-of-a-good-manager-cng</link>
      <guid>https://dev.to/kyleljohnson/three-aspects-of-a-good-manager-cng</guid>
      <description>&lt;p&gt;Over my long career I have had bad and good managers. I have tried to take the good aspects/qualities out of the good ones and make them apart of my management style. So far according to my yearly team surveys I'm a good manager. I attribute my greatness to three things.&lt;/p&gt;

&lt;h1&gt;1. Fairness&lt;/h1&gt;

&lt;p&gt;Managers should be extremely fair with their people. They shouldn't hold people  accountable to a different standard than they would hold themselves to. &lt;/p&gt;

&lt;h1&gt;2. Communication&lt;/h1&gt;

&lt;p&gt;Managers should make a point to communicate with their people on a regular basis (monthly). Set aside time during the month to listen to your individual team members questions, concerns or complaints. &lt;/p&gt;

&lt;h1&gt;3. Vision&lt;/h1&gt;

&lt;p&gt;This is important and goes along with communication. Managers should have a vision. Some utopian (long term) goal that you want your team to reach. The goal should have a clear and huge benefit to the team, not the manager. The reward to reach it should be communicated also. The manager should consistently communicate this vision and keep it in the memory of their team.&lt;/p&gt;

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

&lt;p&gt;In my career I have had hard demanding managers but if they were fair and listened then I appreciated them. You can work for the best company in the world making a whole lot of money but if you have a bad manager it will be miserable. That goes the other way also. I worked somewhere where the pay was low but because I had a good manager I stayed (until the end at that).&lt;/p&gt;

&lt;p&gt;If I missed something, please comment.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>What HTML5 specific features have you used?</title>
      <dc:creator>Kyle Johnson</dc:creator>
      <pubDate>Wed, 05 Jun 2019 22:02:56 +0000</pubDate>
      <link>https://dev.to/kyleljohnson/what-html5-specific-features-have-you-used-5607</link>
      <guid>https://dev.to/kyleljohnson/what-html5-specific-features-have-you-used-5607</guid>
      <description>&lt;p&gt;I would like to know from people in the dev community, what HTML5 specific features have you used?&lt;/p&gt;

&lt;p&gt;I personally don't see many HTML5 specific features used on the web so that is why I'm asking.&lt;/p&gt;

</description>
      <category>html</category>
    </item>
    <item>
      <title>Do Developer Certifications Have Any Value?</title>
      <dc:creator>Kyle Johnson</dc:creator>
      <pubDate>Fri, 26 Apr 2019 02:37:35 +0000</pubDate>
      <link>https://dev.to/kyleljohnson/do-developer-certifications-have-any-value-1kb3</link>
      <guid>https://dev.to/kyleljohnson/do-developer-certifications-have-any-value-1kb3</guid>
      <description>&lt;p&gt;Do developer certifications have any value? Java, .NET, etc&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Advice: THINK then write code</title>
      <dc:creator>Kyle Johnson</dc:creator>
      <pubDate>Wed, 24 Apr 2019 17:21:18 +0000</pubDate>
      <link>https://dev.to/kyleljohnson/advice-think-then-write-code-4cjn</link>
      <guid>https://dev.to/kyleljohnson/advice-think-then-write-code-4cjn</guid>
      <description>&lt;h2&gt;1. Think then write code&lt;/h2&gt;

&lt;p&gt;I teach CIS courses at the college level and I have to tell students this all the time when writing code. THINK then write code. Solve the problem in your head or on paper, then write the code. Too many people when they start out are focused on writing the code and not solving the problem first. Programming is 90% logic and 10% syntax (one person I know said the remaining 10% was something totally different but I can't repeat it) Software Development is mostly about solving problems, not making things show up on a screen and in a browser. People pay developers ridiculous amounts of money to solve problems that save time, money or both. Those business people do not care about the code, they just care about if the software does what they want it to do.&lt;/p&gt;

&lt;h2&gt;2. Break Big Problem Up Into Small Pieces&lt;/h2&gt;

&lt;p&gt;Another piece of advice I recently have to tell students is don't try to solve a big problem all at once. Break the problem into small pieces and solve the individual pieces. Now I will admit this can get you in trouble but for the most part it works.&lt;/p&gt;

&lt;p&gt;A few years back I went to a developer conference and this guy gave a keynote on Complexity. He talked for a good 90 minutes about complexity and how to deal with it. I'm not going to type for 90 minutes so I will just sum up what he said. The way to deal with complexity is to break up the problem into smaller pieces.&lt;/p&gt;

&lt;h2&gt;3. Learn From the Past&lt;/h2&gt; 

&lt;p&gt;If you have read any early computer age software development life-cycle books they all mention flowcharting. You mention flowcharting today people think you're crazy. But they did that for the simple fact that they learned that you should solve the problem first before writing any code. I have seen too many people just starting out in programming get stuck on a simple problem because they are trying to solve the problem and write code at the same time. You might be able to do this once you have more experience. If you develop the skill of solving the problem first then writing the code your productivity will definitely increase because you won't spend time going down dead end paths. For the more complex problems I still whiteboard the logic first before writing any code. Just because you can think and write code at the same time does not make you a better developer than me. (smile)&lt;/p&gt;

&lt;h2&gt;Bonus Advice - Read&lt;/h2&gt;

&lt;p&gt;I know many people do not like reading boring technical books. But trust me the lessons of the past can still help us with the future. Go and read a few of the classic software engineering books. There are plenty of posts on Dev that have those books. Free free to make recommendations in the comments.&lt;/p&gt;

</description>
      <category>advice</category>
      <category>beginners</category>
    </item>
    <item>
      <title>The two worst mistakes companies make concerning developers</title>
      <dc:creator>Kyle Johnson</dc:creator>
      <pubDate>Mon, 22 Apr 2019 22:28:12 +0000</pubDate>
      <link>https://dev.to/kyleljohnson/the-two-worst-mistakes-companies-make-concerning-developers-26og</link>
      <guid>https://dev.to/kyleljohnson/the-two-worst-mistakes-companies-make-concerning-developers-26og</guid>
      <description>&lt;p&gt;I have been in software development for over two decades. I have worked in multiple industries and multiple size companies ranging from 25 people to large fortune 50 companies. Over my career there are two of the worst mistakes I have seen companies make:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Having your developers do double duty as business analysts&lt;/li&gt;
&lt;li&gt;Having someone who was never a developer over developers&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;Having Your Developers Double Duty as Business Analysts&lt;/h2&gt;

&lt;p&gt;Would you hire your accountant to fix your car just because he/she might be able to change his/her oil? No! This is essentially what companies do when they have developers also acting as business analysts or subject matter experts. Developers have enough to remember regarding their craft. You can't expect them to learn the business also. That is way too much information to fit inside a normal brain. Developers also do not need to know the business down to tiniest level of detail like a CEO made need to know. Developers should be given a problem and told to solve it with software. That's it. Any specific background information they need should be given to them. Let them ask the questions and have someone go get them the answers. This is usually a job of a business analyst. This helps the developer focus on creating the best solution using code. Every software development team should have a business analyst or a SME.   &lt;/p&gt;

&lt;h2&gt;Having Someone Who Was Never A Developer Over Developers&lt;/h2&gt; 

&lt;p&gt;I have worked at too many companies that did this. Usually it is someone with project management experience but zero development experience. How can you expect someone with no development experience to understand what developers go through? Someone who has never had a code problem and it literally took two days to figure out that a semi-colon was missing. Someone who has never Googled for two days trying to figure out a solution to a coding problem. Developers must have someone over them that have experienced the trials of being a developer. It's not an easy job. People expect you to do the impossible at times and turn water into wine while still meeting the project deadline. Also developers are unique people with unique tendencies and interests. They are not your typical help-desk or infrastructure IT worker. Developers need people over them who understands them. That is usually someone who was them at one point in their career. &lt;/p&gt;

&lt;p&gt;Now that I have said all of that, the problem still remains that most developers do not want anything to do with management. I get it, believe me I do, but someone has to rescue the developers from people that have no clue of the #devlife.&lt;/p&gt;

&lt;p&gt;Developers need people over them that:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;They can go to and bounce coding solutions off.&lt;/li&gt; 
&lt;li&gt;Can actually do a code review.&lt;/li&gt;
&lt;li&gt;Understands hours DO NOT equal productivity.&lt;/li&gt;
&lt;li&gt;Understands they are not average users.&lt;/li&gt;
&lt;li&gt;Understands the majority of them do not want to talk with people.&lt;/li&gt;
&lt;li&gt;Understands they like what they do and want to do a good job.&lt;/li&gt;
&lt;li&gt;Understands money does not equal job satisfaction&lt;/li&gt; 
&lt;/ul&gt;

&lt;h2&gt;Conclusion&lt;/h2&gt;

&lt;p&gt;I'm a firm believer in separation of concerns. I believe the only concern a developer needs to have is how to solve a particular given problem using code. If your company is guilty of any of the two things above I would actually consider changing companies. I hate to say that but my experience tells me you can't be in a good situation.&lt;/p&gt;

</description>
      <category>developer</category>
      <category>career</category>
      <category>mistake</category>
    </item>
  </channel>
</rss>
