<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Life, software, and organized chaos]]></title><description><![CDATA[Life, software, and organized chaos]]></description><link>https://blog.johndavidsoto.com</link><generator>RSS for Node</generator><lastBuildDate>Fri, 11 Sep 2026 07:50:38 GMT</lastBuildDate><atom:link href="https://blog.johndavidsoto.com/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[Code linters & formatters:]]></title><description><![CDATA[Save brainpower! Use coding tools.
I recently installed Black, an opinionated code formatter for Python, and took interest in how it changed my code. Then I noticed how Prettier, my other code formatter, alters my other code.  It added things I forgo...]]></description><link>https://blog.johndavidsoto.com/code-linters-and-formatters</link><guid isPermaLink="true">https://blog.johndavidsoto.com/code-linters-and-formatters</guid><category><![CDATA[coding]]></category><category><![CDATA[learning]]></category><category><![CDATA[#codenewbies]]></category><category><![CDATA[Prettier]]></category><category><![CDATA[Python]]></category><dc:creator><![CDATA[John David Soto]]></dc:creator><pubDate>Fri, 07 Jan 2022 10:57:46 GMT</pubDate><content:encoded><![CDATA[<h1 id="heading-save-brainpower-use-coding-tools">Save brainpower! Use coding tools.</h1>
<p>I recently installed Black, an opinionated code formatter for Python, and took interest in how it changed my code. Then I noticed how Prettier, my other code formatter, alters my other code.  It added things I forgot, like semi-colons. I remembered how many frustrating hours I had spent chasing down indentation errors (for Python) or missing semi-colons (for several other languages). It made me wonder why it isn't normal to get people using tools early on to take care of these details?</p>
<p>The tools I use now save me time. They save a lot of thinking too. We have a limited amount of mental resources, "<a target="_blank" href="https://hbr.org/2017/05/your-brain-can-only-take-so-much-focus">The problem is that excessive focus exhausts the focus circuits in your brain. It can drain your energy and make you lose self-control</a>". It's good to conserve our mental abilities for the most vital tasks. If you're learning to code your best use of focus is learning the concepts that will help you solve problems in the future. I think avoiding getting bogged down in certain details early on can be helpful.</p>
<h2 id="heading-what-are-code-linters-and-formatters">What are code linters and formatters?</h2>
<p>Linters get their name from an old tool called "lint" developed by Stephen C. Johnson in 1978 while he worked at Bell Labs. It was used to analyze C source code. I know because I read it <a target="_blank" href="https://www.testim.io/blog/what-is-a-linter-heres-a-definition-and-quick-start-guide/">here</a> (By the way, if you want to nerd out on some CS history check out <a target="_blank" href="https://sauravbanerjeec4u.blogspot.com/2010/03/bell-labs-early-contributions-to.html">Bell Labs Early Contributions to Computer Science</a>).  Linters do things like check for syntax errors, make suggestions for adhering to code standards, security checks, and point out other potential problems. Not all linters do the same thing. I didn't know what linters did but I initially tried them out cause I saw them suggested many times. Sometimes when I couldn't get something working I eventually checked the messages from the linter and would google the messages I saw there. This often helped me figure out what was wrong. The downside is that they <a target="_blank" href="https://www.mattlayman.com/blog/2018/python-code-black/">"<em>report</em> the problems, but do not fix them"</a>.</p>
<p>Which is where code formatters can help. These opinionated tools your code to conform to a coding style and save you from common errors. Another benefit is you don't have to think about your coding style. Here's a quote from Prettier's website, <a target="_blank" href="https://prettier.io/docs/en/why-prettier.html">"What usually happens once people are using Prettier is that they realize that they actually spend a lot of time and mental energy formatting their code"</a>. That's time and energy that could be spent learning and solving problems.</p>
<p>Implementing both of these tools can help. Linters highlight potential issues while a formatter can make some changes saving you time and mental energy. Linters can also flag up code quality issues that might cause bugs but a code formatter <a target="_blank" href="https://prettier.io/docs/en/comparison.html">won't fix for you</a>.</p>
<h2 id="heading-but-which-ones-should-you-use">But which ones should you use?</h2>
<p>Developers can be very opinionated about their tools. If you already have a toolset, I'm not trying to change your mind. If you don't,  I am suggesting these can help you. There is still the problem of the cognitive load of setting up these tools (which run right back into the problem I'm hoping to minimize). BUT I believe in the long term you'll benefit. If you would like some help exploring and setting up these tools I am happy to help.  Feel free to hit me up on <a target="_blank" href="https://twitter.com/JohnDavidSoto1">Twitter</a>.</p>
<p>In the meantime, I'll share some of the things I'm using (the ones I remember right now anyways). I'm thinking of doing some content related to setting this up from scratch. If that would be helpful, let me know.</p>
<h2 id="heading-what-i-currently-use">What I currently use</h2>
<p>Here is some of what I have set up currently. <a target="_blank" href="https://prettier.io/">Prettier</a>, which I have set up in <a target="_blank" href="https://code.visualstudio.com/">Visual Studio Code</a>. It can support <a target="_blank" href="https://prettier.io/docs/en/index.html">several things</a> except for Python which I also use (or at least try to?). For that I have <a target="_blank" href="https://pypi.org/project/black/">Black</a> set up. I also recently set up  <a target="_blank" href="https://www.tabnine.com/">tabnine</a> marketed as an AI assistant for code completion. I do like it, though occasionally I accidentally put something in I didn't mean to when I don't pay enough attention to the suggestions. </p>
<p>There are many options, what I use may not be best for you. If you work with a certain language do a little research and find out what the most common tools are. They likely have wide adoption for good reason. By no means am I trying to suggest that using these tools will make learning easy! But I am starting to think they could help you focus on the important concepts. This doesn't take care of silly typos, my nemesis, but that's a problem for another day. But it does remind me, I should go throw this in <a target="_blank" href="https://www.grammarly.com/">Grammarly</a> before I think about posting it...</p>
]]></content:encoded></item><item><title><![CDATA[The real reason I didn't finish my Masters in Advanced Computer Science]]></title><description><![CDATA[A warning first
Content warning: I will be discussing some of my history with depression and (in the past) suicidal thoughts. I am in a good place these days! If these are topics you need to avoid right now for whatever reason come back another day, ...]]></description><link>https://blog.johndavidsoto.com/the-real-reason-i-didnt-finish-my-masters-in-advanced-computer-science</link><guid isPermaLink="true">https://blog.johndavidsoto.com/the-real-reason-i-didnt-finish-my-masters-in-advanced-computer-science</guid><category><![CDATA[mentalhealth]]></category><category><![CDATA[learning]]></category><category><![CDATA[Computer Science]]></category><category><![CDATA[life]]></category><dc:creator><![CDATA[John David Soto]]></dc:creator><pubDate>Fri, 12 Nov 2021 15:38:22 GMT</pubDate><content:encoded><![CDATA[<h2 id="a-warning-first">A warning first</h2>
<p>Content warning: I will be discussing some of my history with depression and (in the past) suicidal thoughts. I am in a good place these days! If these are topics you need to avoid right now for whatever reason come back another day, I'll have something else for you to read. </p>
<p>And now, I couldn't think of any snazzy way to lead up to this. The reason I didn't finish my MSc...</p>
<h1 id="depression">Depression!</h1>
<p>I mean, that's it! I was getting depressed and realized I needed to step back. I will give more detail shortly. I worried this would be out of place on Hashnode. Still,  I'm sharing part of my story because mental health problems are common in tech, and other areas, and we also have unhealthy expectations of an ideal developer to contend with. I hope seeing someone who has struggled with mental health (and probably will again in the future) and came out ok on the other side of some dark places can help someone who is maybe in the middle of struggling right now. </p>
<p>While I was talking with a friend, Joel, the other day on this topic he made a good point that I want to share with you:</p>
<blockquote>
<p>"The thing with problems are that they are subjective. Yours might be worse, but mine still feel much worse to me, because they are my problems, and we all just need to accept that."</p>
</blockquote>
<p>I think that's something we all need to remember, maybe especially when we try to help someone else because it can be tempting to say, "Oh that's not that big a deal" while that may be true for you, it's not true for them and can discourage people reaching out for help. </p>
<p> By the way, Joel is a great guy with an incredible journey into tech. You should connect with him on  <a target="_blank" href="https://twitter.com/_TechPickle">Twitter</a> and check out his <a target="_blank" href="https://techpickle.com/">blogs</a>.  </p>
<h1 id="lots-of-changes-alongside-trying-to-switch-careers">Lots of changes alongside trying to switch careers</h1>
<p>I had about 15 years of work experience, in several industries,  before I went back to school to get a bachelor's in Psychology. Computer Science was nowhere on my radar (I have worked on those in the past though). Then we made an international move to England, my wife's home country, and I discovered an MSc in Advanced Computer Science that accepted applications from people like me with no CS/coding background. </p>
<p> I've done some reading on this, it turns out grad school can be hellish for people. Great for memes, not great for mental state. Whether you've done formal studies or are self-taught, you've likely gotten up close and personal with Imposter Syndrome. Maybe it comes baked into the software somehow? But that and balancing a full-time master's program along with having two small children and a recent international move was maybe too much at the time. I had gotten to the point of starting the final thesis project. I had done some work on it, had several meetings with my supervisor, had even made up the poster board for the poster session. I didn't realize I had slipped into depression until one day I just struggled to get ready. I looked at the clock and was like "Oh, I should have left by now if I was gonna make the poster session and I'm not even ready yet"... and I just went back to bed. </p>
<h2 id="a-history-of-depression-and-suicidal-ideations">A history of depression and suicidal ideations</h2>
<p>There's a joke among some psych folks, "I know I got issues! That's why I got into psychology", and we all laugh cause it's true and probably pretend we don't have any issues anymore. But taking psych classes made me realize I've probably had bouts of depression even as a child. In my 20's while I was in the Army I  struggled with depression and occasionally suicidal thoughts. I didn't seek help cause I was worried it would hurt my career (at that time it probably would have). I had also seen a couple of friends admitted to military mental health facilities and when I visited them they just weren't the same and the thought of that happening to me was terrifying. After my last deployment, I was a wreck when I was back stateside. I was in denial about having a problem until something awful happened in the family. Finally, I knew I had to do something. So I did a short course of therapy, got on meds for a bit and I figured I was fixed. Great!</p>
<p>I was fine for a while it seemed. But between still being in denial of issues I had, PTSD was one of them at the time, and poor choices and coping mechanisms, my personal life eventually fell completely apart. In early 2011 I was trying to put my life together and then that old companion, depression, came back with a vengeance and brought a friend, insomnia. I was only sleeping a few hours a night, which I just shrugged off as a habit from being in the Army. Without going into specific detail, I spent every night of the first 5 months of the year talking myself out of attempting suicide. I had joint custody of a nearly 3-year-old daughter and that kept me going for a while. Then I started thinking I would never get my life on track and it was getting harder to talk myself out of doing something awful. Once I realized staying around for my daughter wasn't enough motivation I knew I had to get real help or I was going to die. It was probably the hardest thing I've ever done, admit to myself and others that I was not ok. That I wasn't even safe for my daughter to be around, not because I would ever directly hurt her but because I couldn't trust myself not to hurt myself and that meant her mom and I agreed I shouldn't have her alone until I was in a better place. </p>
<p>Some of that period is foggy as I found my way again.  I saw VA (Veterans Administration) psychiatrists and counselors regularly, I was on medications that helped my moods stabilize.  I managed to get a job that I enjoyed. I got involved in some things outside of work that were meaningful to me. Somewhere along the line I met this incredible English woman and married her, have two daughters, and now live in England.</p>
<h2 id="dropping-out-of-the-masters-program">Dropping out of the Master's program</h2>
<p>So back to the Master's program. When I realized how depressed I was, I knew I didn't want to get to the point of thinking of suicide again. I decided nothing was worth risking that. I figured out I could take a leave of absence for medical reasons and did that. After nearly a year off and finding an internship I was due to come back to the program. I ended up deciding not to finish the program and ended with a Postgraduate Diploma instead. I had several reasons for making this decision but looking back, I think I still wasn't up for it mentally. Otherwise, I would have likely worked through the things that made me decide to stop. </p>
<h2 id="what-i-was-forced-to-face">What I was forced to face</h2>
<p>Previously I assumed that depression would only be a short-term experience that I could overcome for the rest of my life. I was fully aware I would have regular episodes of being a little down on occasion, but I still thought a severe episode was a thing of the past. But sinking into this deep depression again made me realize there's a likelihood it will happen again. I can't predict when/if it will happen again, all I can do is be prepared for the possibility and try to recognize it sooner in the future. </p>
<p>I can't give you a formula for beating depression or other mental health struggles. I can only tell you that it is worth continuing even when it feels like a huge struggle. Get help as soon as you can, you're worth it! And moments will come that will make you glad you are still here. </p>
]]></content:encoded></item><item><title><![CDATA[How being a musician helped me learn to tackle personal doubts]]></title><description><![CDATA[Musicians get imposter syndrome too
If you follow me on  Twitter , you might have noticed I occasionally post clips of me performing cover songs. I'm pretty much fine doing this on a public platform where lots of people can potentially see it. But on...]]></description><link>https://blog.johndavidsoto.com/how-being-a-musician-helped-me-learn-to-tackle-personal-doubts</link><guid isPermaLink="true">https://blog.johndavidsoto.com/how-being-a-musician-helped-me-learn-to-tackle-personal-doubts</guid><category><![CDATA[music]]></category><category><![CDATA[pair programming]]></category><category><![CDATA[Programming Blogs]]></category><dc:creator><![CDATA[John David Soto]]></dc:creator><pubDate>Fri, 12 Nov 2021 14:57:31 GMT</pubDate><content:encoded><![CDATA[<h1 id="musicians-get-imposter-syndrome-too">Musicians get imposter syndrome too</h1>
<p>If you follow me on  <a target="_blank" href="https://twitter.com/JohnDavidSoto1">Twitter</a> , you might have noticed I occasionally post clips of me performing cover songs. I'm pretty much fine doing this on a public platform where lots of people can potentially see it. But once upon a time, I would freeze about playing in front of people. Especially if I heard someone else play first and they were good, my brain and fingers would just act like they had forgotten to play and if asked if I wanted a turn I would just politely decline. </p>
<p>Kind of how many newer developers may feel about sharing their code with more experienced devs. Why would you share your code? They might think you're an awful developer, or they might harshly criticize you, or... well I'm sure we each have different reasons when we are hesitant to get feedback on our code. Or there's that fun thing when you do decide to write a little code in front of someone but because someone is watching you kind of freeze internally.</p>
<p>Well, all of those things happened to me as a musician also. Especially because I'm mostly self-taught. And I'm convinced it's common enough with musicians given the number of times I've needed to coax something out of other players when I was in charge of a church band. But eventually, I discovered something cool happens when musicians play with different musicians. Even just in playing with and watching how others approach their instrument, you get inspiration for things to try or work on yourself. And it's not just a benefit for the younger players. The more experienced players will also get inspired. Maybe you have been learning a style or technique they haven't tried yet, or something you do gives them the inspiration to try a different approach. And when you see someone do something you want to learn you can just go, "Hey, would you mind showing me that again." Many musicians are willing to help others, even if some are better teachers or better at conveying what they learn. Coding with more experienced devs you'll likely learn about their preferred tools that help them. This is not about cloning someone else's workflow, but you can and should try to incorporate the elements of their tools that make sense for you.</p>
<p>And the more often you play in front of people, especially if you have the opportunity to play to audiences, you learn and grow in ways you don't by yourself. You also learn how to shake off the mistakes that inevitably happen. Lots of musicians make mistakes. But you can let the mistakes derail you and your playing for the rest of the time, or you learn to laugh it off, shake it off, whatever works,  and you get right back into the flow of the music. Before long you'll shake off the mistakes that most won't notice, not that hiding mistakes is the point. Being in the moment and sharing with others is more the point. As a developer, you'll make mistakes, learn to assess more efficiently, ask for help as appropriate, and shake off the ugly feelings that can come with mistakes so you can get back into the right frame of mind to continue writing software. Doing all this with others will likely shape you in ways that doing it by yourself won't. You will open yourself up to opportunities for feedback you wouldn't otherwise get. </p>
<p>If you haven't done pair programming, or mob programmed since that is also a thing, it can be really intimidating to consider doing. Even experienced devs might dislike the idea especially if they have had poor experiences in the past. I humbly suggest that, like playing music with others, programming with others is not trying to simply recreate what you do as an individual but rather it is an opportunity to create a different sort of experience with another person. The end results in the case of programming being functional and clean (hopefully, or at least eventually) software that does something meaningful. Both software development and music are crafts that have creative and artistic elements to them, even if they aren't obvious or exactly the same. </p>
<p>So be brave! Begin with people you trust and learn to create beautiful things together.</p>
]]></content:encoded></item></channel></rss>