In 2023, I focused on Python, Apache Spark, and SQL, which are fundamental or the “bread and butter” in data-related work.
There are still a couple of incomplete chapters of an old, complete Python course. That content teaches you to solve problems in a more elegant, more “Pythonic” way. Those pieces of information belong to the nice-to-have category.
Broadening my Skills: the Foundation of Web Development
Web development has always been a hobby, a side-project of mine.
This q, step by step, I finished a foundational CSS course and a JavaScript course. I already knz ew HTML, (It is not a programming language but a markup language). You can rush through the basic syntax within a couple of hours.
HTML is like the basic frame or “skeleton” of a website. It is essential for understanding web development. CSS is dealing with its appearance. JavaScript is a third language that adds some interactivity to a static webpage.
Today, developers don’t use “vanilla” JavaScript anymore. They might use TypeScript or a framework like React, Vue, or Angular. For the backend, there are several options, like Node.js, Python with Flask or Django, etc.
I don’t intend to go down deep into that rabbit hole. Exploring fields that are different from your main area of expertise can be beneficial for your overall development and learning. It is always advantageous to have “T-shape” knowledge, where you know a bit about “everything”, and there is a certain topic in which you are more experienced (for me, it is data engineering).
The Breakthrough of Generative AI in 2023
2023 was the year when large language models became famous and really popular. Out of curiosity, I experimented with one of them on my own for personal purposes. (Professional AI tools for businesses are out of the scope of this post.)
Using AI for Coding, as an Experiment
As a test, I copied some of the tutorial example code snippets with HTML, CSS and JavaScript into it.
Interestingly enough, the LLM could refactor it and provide a better structure and solution:
It separated JavaScript and CSS into two different external files (you are supposed to do that, but for tutorial purposes, it is OK to throw everything into one page)
It suggested far better variable names than they were in the tutorial.
I wouldn’t rely on it without any critique, while coding. You should understand the code itself and the details. You should review the code, both written by yourself or generated by any AI tool.
Before using external generative AI tools for professional use (as a business), make sure you understand the compliance rules. Review the related documents carefully, or talk to your manager about it.
But for personal use or shortening the learning curve of a new programming language, generative AI can be convenient. If you already know the basics of the given language. It is like an interactive search engine, where you can ask back and forth, not only search for something. But always be aware of the risk of “hallucination” (providing wrong answers to a question). Fixing a code that looks reasonable can be more difficult than debugging some typical, human-related error, in my opinion.
Effect of AI on Coding
I am trying to remember where I heard it, but it sounds reasonable. In future, developers’ work will be changed from writing code to prompting code generation and reviewing the result.
For me, it doesn’t look like a real threat for developers. To create proper prompts for code generation, you have to know and understand the development and the given programming language. As the second step, you should be able to double-check the result of an AI tool.
In other words: it is still worth learning to code and improving yourself as a developer.
Image generation with AI
I experimented a little bit with image generation tools, like Midjourney and DALL-E.
In general, by carefully looking at the details, sometimes you can spot if a person is AI-generated by focusing on the generated eyes. In future, it will be harder and harder to tell, whether an image is “real” or generated by AI.
You can use generative AI to plan the layout of a website. The result can be inspiring sometimes.
Similarly to generative large language models, I would not outsource all of the creative process to an AI tool, but for idea collection, or improved productivity, it can be beneficial.
Career Hints from Artificial Intelligence
I wanted to test AI: with my 4 years of experience as a data engineer, what would AI suggest I learn?
To my surprise, I got several valuable hints on how to grow as a data engineer and developer.
Here’s a list of the most relevant bullet points:
- Advanced-Data Engineering Skills (big data, data warehousing, ETL processes)
- Cloud and DevOps (AWS Lambda, Docker, Kubernetes)
- Machine Learning ( machine learning libraries like TensorFlow, PyTorch)
I was aware of these topics, but it was interesting to see them in an AI-generated response.
Conclusion
I hope you enjoyed reading about my journey of learning web development and generative AI in 2023. I encourage you to explore these topics and see how they can enhance your skills and creativity.