Pinned — 28 Oct 2025 #codingStreet-Smart Coding: 30 Ways to Get Better at Coding Without Losing Your Mind
I spent five years in college learning to code.
A stupid dissertation delayed my graduation. But that’s another story.
Most of my five-year program didn’t prepare me for real-world coding. My real coding journey began at my first job, with one Google search: “how to get good at coding.”
I found a lot of conflicting advice:
“Use comments”
“Don’t use comments”
“Do this”
“Don’t do that”
Arrggg!
It took years of trial and error to learn what worked.
I had to survive on-call shifts, talk to stakeholders, and say “no” politely. More importantly, I had to learn that coding takes more than just syntax.
That’s why I wrote Street-Smart Coding— a roadmap of 30 lessons I wish I had when I started. For every dev who’s ever typed “how to get better at coding” into Google or ChatGPT. (Back in my days, I didn’t have ChatGPT… Wait, I sound like a nostalgic grandpa…)
Preview of the first ~12 pages
Inside “Street-Smart Coding”
This isn’t a textbook. It’s a battle-tested guide for your journey from junior/mid-level to senior.
Some lessons are conventional.
Others were learned the hard way.
And a few are weird.
One lesson comes from a TV show. Nope, not Mr. Robot or Silicon Valley. That’s on Chapter #29. It will teach you about problem-solving.
You’ll learn how to:
Google like a pro
Debug without banging your head against a wall
Communicate clearly with non-tech folks
…and 27 more lessons I learned over ten years of mistakes.
Here are 4 thought-provoking links I found this week. Plus my reflections after a week off social media.
#1. AI makes code cheaper, but cheap code means not understanding what you’re building. “Use AI or stay behind” shouldn’t be the real mantra. It should be rely on AI and get left behind (4min).
#2. College and bootcamps don’t teach the skills you need for real-world coding. That’s why I wrote Street-Smart Coding, by the way. This week, I found an updated version of The Missing Semester, a free course covering text editing, version control, agentic coding, and other skills nobody else teaches.
#4. Now with cheaper code it’s finally time to tackle the real bottlenecks (3min). And no, coding and typing were never the bottleneck.
I spent last week away from social media, and it turns out I’m another dopamine junkie (4min), even with mindful use and a timer. Arrggg!
(Bzzz…Radio voice) This email was brought to you by… Street-Smart Coding, 30 lessons to help you code like a pro. From Googling to clear communication, it covers the lessons you don’t learn in tutorials. It’s now out on Kindle and paperback on Amazon.
A subtle detail easy to forget when working with legacy applications that use stored procedures.
Stored procedures swallow long strings
If you’re inserting a long string into a shorter column, SQL Server truncates the parameters with no complaints,
USEMovies;GOCREATETABLEMovies(IdINTPRIMARYKEYIDENTITY(1,1),NameNVARCHAR(10)NOTNULL/* <-- A 10 here */);GOCREATEPROCEDUREInsertMovie@NameNVARCHAR(10)/* <-- Notice the "10" here */ASBEGININSERTINTOMovies(Name)VALUES(@Name);END;GO/* @Name is a NVARCHAR(10), but the value is longer than 10 */EXECInsertMovie@Name='ThisMovieNameIsWayTooLongForTheColumn';GO
The stored procedure “swallowed” that long parameter. No complaints! But wait to see what Entity Framework does.
Entity Framework doesn’t validate or truncate
Now, if we try to do the same inside a unit test,
usingMicrosoft.EntityFrameworkCore;namespaceLookMaWhatEntityFrameworkDoes;publicclassMovie{publicintId{get;set;}publicstringName{get;set;}}publicclassMovieContext:DbContext{publicMovieContext(DbContextOptions<MovieContext>options):base(options){}publicDbSet<Movie>Movies{get;set;}}[TestClass]publicclassMovieTests{[TestMethod]publicasyncTaskTruncateItPlease(){conststringconnectionString=$"Server=(localdb)\\MSSQLLocalDB;Database=Movies;Trusted_Connection=True;";varoptions=newDbContextOptionsBuilder<MovieContext>().UseSqlServer(connectionString).LogTo(Console.WriteLine).Options;using(varcontext=newMovieContext(options)){context.Movies.Add(newMovie{Name="RememberThatNameInTheDBHasSize10"});context.SaveChanges();// ^^^^^// Test method LookMaWhatEntityFrameworkDoes.MovieTests.TruncateItPlease threw exception: // Microsoft.Data.SqlClient.SqlException: // String or binary data would be truncated in table 'Movies.dbo.Movies', column 'Name'. Truncated value: 'RememberTh'.}using(varcontext=newMovieContext(options)){varmovies=context.Movies.ToList();Assert.IsNotNull(movies);}}}
Entity Framework Core blows in your face. At least, it tells you the table and column names, and the value being truncated.
Another subtle detail worth remembering. Et voilà!
I’ve been binged watching Slow Horses, season 5. An espionage series in present-day London about a team of problematic MI5 agents, relegated to a forgotten office.
Even though, they’re labeled as poor performers—slow horses—they always end up saving the day.
After watching the first three episodes of season 5, I realized each one has ended in a dramatic way.
The second episode ends with a text message that makes you rush to click on “Next episode.” One of the protagonists, against all odds, is dating a pretty hot woman. Or that’s what he thinks. The text message reveals the girl’s true intention in a “wait, what” moment right at the end of the episode.
One LinkedIn post pushed me to quit social media for a week.
I’ve been writing on LinkedIn (and other social blogs) for two years. And to “grow” my account as a creator, I’ve been following common advice: “be your own case study” and “engage after posting.” I questioned that advice, yet still spent an hour a day engaging.
I had two wake-up calls:
Noticing my phone time. 2h18min on average the week before.
Finding a post inviting people to disappear from the Internet without apologies, announcements, or guilt. I did that—kind of.
For a week, I stayed away from anything with a feed: Medium, LinkedIn, dev.to, YouTube, Reddit…But I still scheduled my weekly content for the platforms where I write.
When planning my feed-free week, I thought I needed an app/website blocker. But starting the first day with an intention was enough. “No social media today.”
Lesson #1: Don’t simply ban social media, replace them with conscious activities instead.
Don’t make scrolling your go-to activity
I hadn’t realized how scrolling had changed my behavior.
On day two, I was on a weekly meeting with a contracting client. “Another meeting that could be an email” kind of meeting. Nothing unusual until I noticed I wanted to fire up my LinkedIn account to make it until the end. I wanted a feed to scroll, like an addict.
Those moments made me realize scrolling was my default response to boredom.
Lesson #2: When procrastination comes, start with an easy task and sustain for 5 minutes. That’s enough to keep things moving forward.
Lesson #3: Find a boring activity instead of scrolling on social media. I’m doodling on the back of old receipts.
Social media looks like any other addiction
Even with an intention, books, and doodling, my monkey brain often popped up trying to trick me back to social media:
“What if my account got suspended for lack of engagement?”
“Did my posts generate visits to my book landing pages?”
To quiet the monkey brain, I learned to distance from it and refute my thoughts with rational ones:
“You received a notification of your scheduled posts going live. The system is working.”
“Let your content system run. You don’t need to refresh stats every 5 minutes. Let the Internet do its magic.”
Lesson #4: Social media tricks (whistles, notifications, bells) work. We need a lot of effort and intention to fight back.
“Warming up” the algorithm isn’t worth the time
To finish the experiment, earlier today I logged into my social media accounts.
In some platforms, my impressions suffered. Maybe it was just coincidence. In another one, one of the two scheduled long-form posts was a hit.
As usual, my best posts still spiked in views and thoughtful comments.
“Warming up” the algorithm with hacks (engaging before posting, like and reshare your own posts) isn’t worth the time and the addiction it creates.
Lesson #5: Good posts stand out without hacks.
Handling them with care
After my feed-free week, here are some long-term changes I’m adopting, both as a reader and writer:
No email notifications from social media.
Zero feeds before creative work. Timer on socials for conscious use.
Weekly posts scheduled in advance. Have 2 or 3 weekly slots for engagement.
Feed-free mode when working on creative projects or experiments.
I thought I wasn’t an addict. I thought I used social media consciously. I thought I was a dealer who didn’t use their own drug. Stepping away showed me I was just another dopamine junkie. Social media, like every billion-dollar industry, thrives on keeping us hooked.