From Data Engineering to Career Growth and Everything In Between

Using ChatGPT For Technical Studying And Programming

As I mentioned in my last post, I have been playing around with AI a lot recently to help me plan my time while unemployed. Here are a few ways I’ve tried using ChatGPT and what I think about them.

Scheduling Time Blocks

I would not recommend ChatGPT for this task unless you’re like me and have blank page syndrome. Here is the prompt I wrote:

Can you help me create a plan to time block out my week? I want to start the time-blocked part of my day at 9:30 AM, end it at 9:00 PM and need:

- 2 hours to exercise 3 x a week

- Lunch from 12-1 daily

- 1 hour of studying daily

- 1 hour of work on <a friend's startup> daily

- 1 hour of organization on non-gym days

- 1 hour on my shop

- 1 hour of planning my business

I found that ChatGPT didn’t quite grasp the specifications, blatantly ignoring some of them. After quite a bit of back and forth where it fixed mistakes and added back in old ones, I decided to add what it gave me to a Google Sheet and edit it from there. At least, it helped me realize what I wanted because I had to articulate it!

Creating Study Guides

I would actually highly recommend this. Here is a prompt I wrote:

Can you help me create a study plan for advanced Python programming topics an hour three times a week?

The format it gave me originally had a lot of extra text that I didn’t want and I did have a difficult time getting it to spit out a bulleted list with one topic per line so I could paste it into Google Sheets. But eventually after asking to remove headings in a few different ways, I ended up with this:

  • Decorators and Generators
  • Context Managers
  • Metaclasses
  • Introduction to Async Programming
  • async and await keywords
  • Asyncio Library, Event Loops, Coroutines, Tasks
  • Concurrent Futures, Async Patterns
  • Collections Module, namedtuples, defaultdict, Counter
  • Algorithmic Complexity, Big O Notation
  • Sorting and Searching Algorithms
  • Introduction to Web Frameworks
  • Flask/Django Basics, Routes, Templates, Views
  • Advanced Features, Deployment
  • NumPy and Pandas
  • Matplotlib and Seaborn
  • Introduction to Machine Learning, scikit-learn

As a seasoned Python programmer who wasn’t looking for anything specific, I was very pleased with this list! A few people have mentioned to me to use ChatGPT cautiously for topics you don’t know much about and I would agree. For example, the mention of async and await is a bit confusing here because they’re not exactly Python staples (unlike with JavaScript) except within the context of Asyncio, which is mentioned in the next bullet. In fact, async programming is mentioned a few times and it’s absolutely overkill. Knowing things like that saves me a bit of time as I can weed out topics that don’t really make sense.

I also used it to make lists of data engineering best practices, DevOps best practices, and beginner AI and Machine learning topics. All of which I was very pleased with!

Writing Code

Proceed with caution here! In my experience, using ChatGPT to write code is very hit-or-miss. Perhaps this is because I have been experimenting with the free version. Often the code simply does not run as it can be inconsistent about variable names and use methods that are deprecated. Then I’ve needed to spend time trying to figure out what is wrong. For this use-case, I would recommend using GitHub CoPilot or similar. My husband uses CoPilot and loves how it integrates with his IDE.

Reformatting Existing Code

I might do more of a deep dive on this use-case. At a high-level, I used ChatGPT to help me convert a Python terminal script with user input to a Django app. While this is still very much a work in progress, it was very helpful for reminding me about the anatomy of a Django application. I was able to spin up an app using Django commands and then hit the ground running from there with the models, templates, urls, etc.

I’ve also used it to help me reformat a script to have more error logging and bite-sized functions.

Debugging

I’ve found it to be fairly good at debugging a chunk of code given an error message. But, not necessarily when it wrote the code itself. If the error is about syntax, great, but if the error is about a deprecated method, I would recommend reading the docs instead.

Editing Technical Documents

Oddly, I didn’t end up liking ChatGPT’s suggestions when I asked it to edit this specific article. In this case, I found it changed too much (even when I asked it to just fix typos) and removed some of my personality. Also, sometimes the suggestions sounded a bit hokey. However, I have used it successfully in the past to help edit for clarity and tone. Kind of a no-brainer use-case, but I think it’s still worth mentioning. That said, I am also a devoted free-tier Grammarly user.

Future Areas To Explore

I’d also like to look into these use-cases:

  • Breaking a big project down into smaller chunks
  • Explaining what a chunk of code does
  • Help with choosing technologies for the code/infrastructure of a project
  • Project ideas that fit your interests

Conclusion

In conclusion, ChatGPT has been useful for:

  • Getting over blank page syndrome
  • Generating ideas
  • Debugging syntax issues
  • Reformatting existing code for simple structural changes
  • Editing technical docs

It has left something to be desired for:

  • Complex scheduling
  • Formatting its output in a specific way
  • Redundancy of output in lists
  • Writing code
  • Debugging versioning issues

Leave a comment