For the next four days — until 2:00 p.m. EDT on Monday, March 24, 2025 — Humble Bundle’s Computer Science the Fun Way bundle will be available, giving you 18 books for as little at $36, which puts the cost of each book at a mere two bucks!
All the books come from No Starch Press, a publisher of some great books, and the folks behind my current favorite books for my Python courses.
With everything else that we developers have to know and learn, many of us use Git and GitHub “on autopilot,” using them to perform a handful of daily tasks that out of habit with little understanding. If you want to get a better understanding of Git and GitHub — and have fun at the same time — Monday’s meetup is for you!
The tl;dr
What: Suncoast Software Skills Meetup — Making Sense of Git and GitHub
New developers have trouble with Git and GitHub, but so do experienced ones! Would you like to take a step back and really understand these fundamental developer tools? If so, thus upcoming session at Suncoast Software Skills Meetup is for you!
Join us for a beginner-friendly seminar designed to demystify Git and GitHub! Whether you’re a coding novice or simply looking to get a better understanding of version control, we’ll guide you through the fundamentals with a practical hands-on exercise.
And yes, this is a SHAME-FREE ZONE. Even after all these years using various source control systems leading up to Git and GitHub — rcs, cvs, Visual SourceSafe, Subversion (svn), TFS — we still stumble. This workshop is all about getting good at Git and Github!
We’ll also look at ways you can fix common Git mistakes that we all make, courtesy of Katie Saylor-Miller’s and Julia Evans’ delightful book, Oh Shit, Git!
You’ll also learn about great resources for getting better at Git and GitHub, such as Oh My Git!, a videogame that makes learning about Git fun.
This will be a fun meetup at one of Tampa Bay’s best meetup venues, Embarc Collective. And thanks to the Embarc Collective / Bank of America scholarship, we’re able to provide food (it’ll be cuban sandwiches, empanadas, and potato croquettes).
Join us this Monday, and let’s sharpen our software skills!
I’ve been seeing a concerning trend over the past couple of months, and perhaps you have too, where people are becoming increasingly reliant on AI for coding, and it might not be working out well for most of them.
Disclamer, I’m a moron who worked on the same project without thinking about the risk that Cursor could break everything. Yesterday, Cursor (even though I only asked it to feed a view on my UI) destroyed months of development.
My question: How do you back up your projects/versions to ensure that the next action on cursor is reversible? Ops!
Also, I know that while I’m the concern, cursor isn’t the only culprit, it’s also Claude (while good overall) still has some flaws
Don’t take the misspellings and strange grammar as a sign of a lack of smarts — there are “tells” such as the pluralization of “work” that suggest that the author’s first language isn’t English. And in a follow-up comment, they wrote:
I’m not a dev or engineers at all (just a geek working in Finance)
So what I see is someone with the mental capacity to master another language, seeing a problem in their area of expertise that could be solved by an application, and then setting out to build that application with the assistance of AI, even though programming isn’t something they’re familiar with.
First, I think we should celebrate that kind of go-getter attitude.
Second, those of you who are programmers have already seen the post’s author’s rookie mistake. It’s in this question:
My question: How do you back up your projects/versions to ensure that the next action on cursor is reversible?
You probably thought: Of course, they don’t know version control exists!
At the moment, even the best LLM will simply focus on answering the user’s questions and not stray too far to make helpful asides or ask clarifying questions, such as “Have you heard of Git?”
Something’s been bugging me about how new devs learn and I need to talk about it.
We’re at this weird inflection point in software development. Every junior dev I talk to has Copilot or Claude or GPT running 24/7. They’re shipping code faster than ever. But when I dig deeper into their understanding of what they’re shipping? That’s where things get concerning.
Sure, the code works, but ask why it works that way instead of another way? Crickets. Ask about edge cases? Blank stares.
The foundational knowledge that used to come from struggling through problems is just… missing.
We’re trading deep understanding for quick fixes, and while it feels great in the moment, we’re going to pay for this later.
The first line in the following section shouldn’t really be shocking but it still feels shocking:
I recently realized that there’s a whole generation of new programmers who don’t even know what StackOverflow is.
With AI, these junior developers gain speed of delivery, but at the cost of understanding what they delivered does. Which means that they can’t maintain or modify what they built — at least, not without even more AI assistance. Over time, what they build becomes a collection of quick fixes arranged together without any consideration of the system as a whole. That’s a whole lot of tech debt.
There’s more thought on this article in this video by Forrest Knight
In case you’re not familiar with the name, Andrej Karpathy has forgotten more about computer science and AI than most of us will ever learn. He was the director of artificial intelligence and Autopilot Vision at Tesla, and also worked at OpenAI, where he specialized in deep learning and computer vision. He also has a YouTube channel that’s worth checking out if you really want to boost your AI/ML skills.
Here’s the text of his tweet:
There’s a new kind of coding I call “vibe coding”, where you fully give in to the vibes, embrace exponentials, and forget that the code even exists. It’s possible because the LLMs (e.g. Cursor Composer w Sonnet) are getting too good. Also I just talk to Composer with SuperWhisper so I barely even touch the keyboard. I ask for the dumbest things like “decrease the padding on the sidebar by half” because I’m too lazy to find it. I “Accept All” always, I don’t read the diffs anymore. When I get error messages I just copy paste them in with no comment, usually that fixes it. The code grows beyond my usual comprehension, I’d have to really read through it for a while. Sometimes the LLMs can’t fix a bug so I just work around it or ask for random changes until it goes away. It’s not too bad for throwaway weekend projects, but still quite amusing. I’m building a project or webapp, but it’s not really coding – I just see stuff, say stuff, run stuff, and copy paste stuff, and it mostly works.
This is great for Karpathy, but I’ve already talked with developers who’ve fully embraced the first part of the tweet, where Karpathy throws a lot of work to the AI. The problem is that they’re ignoring these key points from the second part:
The code grows beyond my usual comprehension, I’d have to really read through it for a while.
Sometimes the LLMs can’t fix a bug so I just work around it or ask for random changes until it goes away.
It’s not too bad for throwaway weekend projects, but still quite amusing.
And let’s not forget the last three words of his tweet: it mostly works.
Karpathy is very, very good at coding and has lots of experience. He’s internalized a lot of best practices and has developed an instinct for programming and can spot “code smells” a mile away.
The people who’ve been talking to me about getting into “vibe coding” are not Karpathy, and some of them have mentioned that they have that increasingly common problem where they say “I know how to use my programming language and framework, but I don’t know how to apply what I know to build an application from the ground up.”
They’re not ready for vibe coding, but they’re doing it anyway. If your main gig involves working with code — and especially working with other people’s code — you’d better prepare for some interesting times over the next few years.
It’s a Raspberry Pi 500, which takes a Raspberry Pi 5, the latest generation of the “Internet of Things” tiny computer, and puts it into a keyboard chassis. I probably have more than enough computers, but I love Raspberry Pis, and this 1980s-style “all-in-one” form factor was impossible to resist, especially with its $90 price tag.
I put it on. my main desk and hooked it up to the secondary monitor with an HDMI splitter so that my MacBook and the Pi 500 can share it. Here’s what it looks like on my desk:
Setup was straightforward: the Pi 500 comes with a 32 GB A2-class MicroSD card, which acts as its “hard drive.” I plugged it into a MicroSD-to-USB adapter, plugged into my MacBook, and used the Raspberry Pi Imager app to load the latest version of the Raspberry Pi OS, which is based on Debian, onto the card.
In case you need a reminder that we live in an age of technological wonders, here’s the MicroSD card, posed beside a U.S. quarter coin for scale:
I was a bit concerned about the “feel” of the keyboard based on its “chiclet” style, but it’s actually not bad. It feels like a mid-level “wintel” laptop keyboard, and I think the feel of the Pi 500 keyboard feels better than the one on my Windows machine, a 2020-edition Acer Nitro 5 (nice machine, but I despise its keyboard and trackpad).
What it’s for
I already have computers that can run circles around the Pi 500 — an M1 MacBook pro and a Windows gaming laptop powered by a 10th-gen i5. What possible use could the Pi 500 possibly serve for me?
Here are my excuses — er, reasons:
As a server for mobile apps or client applications that I’m running on my Mac and Windows machines.
As a “bare-bones” computer for sharpening some rusty C++ skills and learning Go. No fancy IDEs — it’s just Visual Studio Code and the command line.
Because it’s fun.
Maybe that last reason is the most important — it’s just fun to play with the Pi 500, and that form factor makes me feel nostalgic for the days when I’d play games that I entered from BASIC source code published in Creative Computing or COMPUTE! magazine.
Watch this space
I’ll write more about my experiences with the Raspberry Pi 500 here, so watch this space if you’re curious about this fun, inexpensive platform!
The biggest feedback we hear from our group and at conferences is that people want to see some real life use cases of Power Automate, Power Pages, Power Apps, Copilot Studio, Power Bi Dashboards.
After we will head to Yeoman’s for food and drinks (Buy your own way) for advanced social networking.
We can’t wait to get everyone back together again!!
The AI revolution is transforming business landscapes, but many developers find themselves overwhelmed by this paradigm shift. How do we navigate this “Wild West” of tools, models, and platforms?
Kevin will demonstrate how open source technologies can standardize AI development and deployment in enterprise environments. Learn how to leverage familiar tools like containers, Kubernetes, CI/CD, and GitOps to build AI-powered applications in a secure, repeatable manner.
Discover how open source solutions are democratizing AI development and deployment. Through live demonstrations, Kevin will showcase:
OpenDataHub (OpenShift AI)
Kubernetes integration
Backstage implementation
Java application integration with Open Source models
Local development environment setup
About Kevin Dubois
Kevin Dubois is a Principal Developer Advocate at Red Hat where he gets to enjoy working with Open Source projects and improving the developer experience. He previously worked as a (Lead) Software Engineer at a variety of organizations across the world ranging from small startups to large enterprises and even government agencies. He brings a wealth of experience to the table, including:
Java Champion
Active contributor to Quarkus, Knative, Apache Camel, and Podman
Member of Belgian CNCF and Belgian Java User Group
This actually hasn’t happened…yet. But there are enough people who practice asshole-driven development for there to eventually be an AI code assistant that behaves like this.