Why generative models (#Bard, #ChatGPT, GitHub, #Copilot) shouldn't be your first choice, if you're just starting out as an engineer

  • Having a good intuition and understanding, which builds with time, experience and rigor, is irreplaceable - no generative model can replace the knowledge accumulated from learning and experience.

  • If you don’t have a good, fundamental foundation, cultivated with experience and your own thinking, generative models tend to reproduce the behaviors of their guides (you), and if you’re not an experienced guide, you don’t get quality: chit in → polite chit.

  • The fact that the model generates your intention will lead you into a false sense of knowing. Generative models are impressive, but they’re far from “self-contained”. For example, I often ignore the suggestions it gives, as they tend to be false or misleading. Semi-automatic input suggestions fail to capture my intent beyond getters and setters. Logical constraints are often wrong.

  • Before you can give the model a worthy prompt that will generate quality output that matches your needs, you yourself must have a good understanding of the domain and the intricacies of engineering. You’re much more likely to “capture” the model by generating generic crap, or not what you intended. Writing a class, method, function or model is much more rewarding when you do it yourself, than when you ask a generative model to do it for you.

  • Don’t rely on the “bug-finding” function. Although it’s frustrating, bug-finding is where most of the learning comes from, and it’s fun. It’s a journey as you go through functions, make console logs and track down various problems that may be lurking in syntax or logic. Bug hunting is as much a learning process as general problem solving.

  • Copilot (+ variants), are not well suited to complex problems that require a deeper level of domain knowledge, and the more distributed a system is in nature, the less context it has since distributed system concepts are loosely coupled by interfaces, and cross-system or cross-domain intentions are harder to capture.

  • The do-it-for-me attitude will render you useless when real problems arise. When something goes wrong, you’ll be left in the dark. You’ll struggle to explain the thought process or justify solutions to your team.

  • Your creativity will be severely limited. Engineers who rely solely on code from these generative models may struggle to come up with creative solutions, as generative models generally generate code based on existing data rather than inventing new approaches.

  • So, I urge you not to rely solely on generative models, and if you must or if you feel “left out”, then at least try old-fashioned learning. There are ways to use it effectively, without offloading the thinking process. If you’re struggling with a concept, use AI tools to explain it simply, and in this way, you assist the learning process.

This post is from an administrator of TOGO AZURE COMMUNITY (known as Mr D)

I have found it interesting.

Take care.

3 Likes

All things starts from the “seeds” or the “foundations”, so if you want to build up you would start from the foundations not from the “ceiling”!

2 Likes

Fact.

Unfortunately, some people hope to become good at their craft overnight, with less effort.

1 Like