Google's search is way better today, with it's AI Mode, than it was years ago. It's grown. You can now have an intelligent conversation about what you're working on and most of the time, more than 75% of the time, get solid answers.
Especially if you're a programmer. Need to figure out how to write a function to grab some data from wherever and display it in a table. 5 seconds. How about adding user interactivity to that table. Maybe 10 seconds more. Hey, forgot a security wrapper, maybe a minute to fix this.
The need to have a full technology department with developers, testers, packagers, cyber experts with all the associated management is taking a 180-degree turn.
Of course you need to know what you want. You need to ask the right questions.
And you also need to know if the answer you got is the right answer.
So there's still a ton of homework to be done.
But the stressful work of trial-and-error, research and gradual knowledge building is becoming less painful. It hasn't gone away, it's just easier to have someone, something, tell you what you should be thinking about.
COMFORTABLE BEING UNCOMFORTABLE
I used to teach computer programming - not computer science. Teach students a programming language and how to solve mainly business related problems using a specific programming language. Automate the hard stuff.
And I'd tell my students that this world of programming is constantly changing. I'd tell them that you need to get used to being comfortable being uncomfortable. For as soon as you've mastered something, it's scheduled for obsolescence. And that a life as a software developer is a life of constantly trying to keep your skills current.
20 years isn't a really long time in a career, but it's a good enough span to say that you've matured in that area.
And 20 years ago, there was no AI to speak of. It wasn't in the horizon, at least for those of us writing desktop applications for Microsoft Windows, or server API's on Linux. After a while, you knew enough of the business logic and the actual coding sometimes became quite tedious.
For myself, mastery of a skill was quite disappointing, even though the work prior to mastery, the constant bouts of failure, were frustrating, finally getting it felt like being at the top of a mountain, and there was nowhere else to go but down.
But soon enough, another hill presents itself and another climb awaits.
THE LOVE OF CODE vs AI
If you're like me, it is not always about the goal, but the journey can be interesting. The well-trodden path can be delightful but you may also have great experiences when you go off-road and challenge yourself.
It took me a long time in my software developer career to discover that there really isn't a "best" way to write something, but there are "better" ways of getting things done. Much of the time I wasted researching, even when I had a solution that worked, is that I kept thinking that my solution is not good enough. I remember learning C++ and thinking that from this point on, I will do absolutely everything in an object-oriented way. I still don't know if that was a good or wrong thing to do. Computers were getting so fast, that for the problems I was solving, it wasn't a performance decision, more likely a complexity one.
And later in my career, my decision, and fortunately it was mine to make and not my employer's, to learn and focus on Python had more to do with the readability and simplicity of the language. No curly braces, yay! No semi-colon's double-yay! But now dealing with tabs-to-spaces ugh! Does anyone use tabs? Weren't they invented for the typewriter? Why are they still on the keyboard?
Anyhoo, writing software can be an intellectually satisfying, cerebral activity. Part problem solving. Part engineering. Part construction. And it's not always about the result. Behind a pretty interface can be some nasty stuff hanging together by the skin of its teeth, just waiting for a breeze to completely fall apart, like a set of Jenga blocks. You don't want to be the programmer who says, "I don't know what I did, but, hey, it's working!"
KNOWING IS EVERYTHING!
I spend a quite a bit of time, for my business, and also for fun, writing code in Python, using the Flask framework as well as Bootstrap. I like working with Sqlite databases. Sqlite does everything I need for the small tools stitched together to make my business semi-automated. We're mostly paperless (or paper-free) and I've always felt that its time well spent automating a very repetitive task, rather than simply slogging through it because the manual process isn't that difficult.
Like who wants to type up employee payslips each month. Even if it's less than 10 employees, a tiny Python app will do the work in a few seconds each month as well as maintain the database.
AI can write that entire app in a few seconds. With a simple prompt on Google, you can get a fully working application in mere seconds.
Try this prompt:
I'd like a Python/Flask application that uses Bootstrap for a nice user interface for managing my employee payroll information and then allowing me to print out payslips each month. Each employee will have a single payment record per month with about five, maximum seven, deductions each month. The payslip should have all that data.
I typed that in and got a ready application in less than five seconds!
Now, if you know Python / Flask, then it's easy enough to read the code generated and make tweaks to your satisfaction and this is far less work than actually writing the entire thing by yourself, but if you do not know Python / Flask, then the only problem may be making changes later. AI will really screw things up.
Oh, and in the prompt above I forgot to tell Google that I really don't like (hate) SQLAlchemy. I'm very, very old school and are super comfortable writing my own SQL statements and tracking them in a module.
And so the future of software development will be coming up with the right questions to ask the AI engine.
CAUTION
I don't work that way. I normally know how to start and then I use AI (mostly Google and sometimes the CoPilot agent built into Visual Studio Code) to suggest code snippets. Not whole functions, but methods of getting a piece of work done.
I remember when I first came across the DataTables Javascript library for presenting tabular data on the page. A piece of cake to implement and I didn't care too much that I didn't have to paginate long tables manually - though I must admit, that's a lot of the fun of data management - the complexity. But I needed to upgrade the DataTables links for the CDN I was using and also try to get rid of JQuery.
I hopped into Google, gave it the <head> and <script> sections of my boilerplate page with the code to be changed and the suggested "fix" came back almost immediately.
I cut-and-pasted it.
It did not work. My headers were ruined and there was no styling.
Back-and-forth we went, Google AI and myself. My first response was, "you broke everything!" and AI Mode came back with an apology and a fix.
It took a moment for me to realize that the fix contained the same links as the breakage, but I tried it and, of course, it did not work.
"You broke it more!" I complained again.
And another fix came forward.
I knew what was wrong, and what needed to be fixed, but I was too lazy and wanted generated code so that I could cut-and-paste it in. All I needed to do was to head over to the DataTables home page, see the template links well posted for Bootstrap v5 and Bob's your uncle!
Which is eventually what I did. The back-and-forth with Google AI Mode was not looking like it would come to an end.
CONCLUSION
Therein lies the problem. AI can generate the code, full apps, full classes and functions or simply code snippets.
But you still should read them, top to bottom, make sure you understand what's been offered, add some of your own character before you commit.
Knowing that it is guaranteed that one day, you will have to poke your head in the nest and pull a couple of branches, or twigs, out making sure you don't spring a leak.
And it may be impossible for AI to clean up as I found out. It may get into a numbing cyclical brain freeze and you're forced to do a complete reboot.

No comments:
Post a Comment