Skip to content

txt/guru26spr

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

46 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🌀 CSC491/591: How to be a SE Guru
NC State, Spring '26

Q: What is a software guru?
A: First to get hired. Last to get fired.

While LLMs might be able to replace the average programmer (*) the point of being a guru is that you're not average.

(*) (But maybe not. See also [1] and [2].)

The guru engineer is the one who stands out in the IT crowd. When the stuff hits the fan, they are the ones who fix things, quickest. They know more than everyone else. They know how to improve everyone else's code, possessing a clear, unshakeable vision of what separates good work from bad. They identify friction and fix it rather than living with it, offering clear, succinct principles during code reviews that elevate the entire team's standard. By bridging the gap between raw coding speed and enduring engineering value, the guru becomes the team's anchor.

To achieve this, one must go beyond the standard curriculum. Its not about knowing XYZ, but knowing how to know what matters, for whatever it is you are doing. Its not having a full tank, but knowing how to fill it further. While other subjects cover the critical "how" of our trade—mastering the command line, editors, and version control—true craftsmanship requires pairing this proficiency with the "why." We must fuse technical agility with timeless Software Engineering principles that transcend any single language (things like YAGNI, DRY, Separation of Concerns, Dependency Injection, VITAL, etc etc). This combination transforms you from a passive user of tools into an architect of control.

We define this control through the motto: "Own what matters (VITAL), skip what doesn't (since, YAGNI)." Inspired by the "backpacking" mindset that built SQLite, we prioritize self-reliance and portability over dependency bloat. While modern development often adds complexity via heavy containers and shifting package managers, we champion lightweight, readable solutions that start fast and leave nothing behind. By acquiring your vital infrastructure locally, you build methods that survive the rise and fall of trends, ensuring your work remains accessible to future generations.

📅 Date 🎓 Lecture 🛠️ Submission
(due start of class)
📝 Review
Jan 14 intro
rules
Jan 21 1a
Jan 28 1b
Feb 04 2a
Feb 11 2b
Feb 18 3a
Feb 25 3b
Mar 04 4a
Mar 11 4b
Mar 18 Spring Break (no class)
Mar 25 5a
Apr 01 5b
Apr 08 6a
Apr 15 6b
Apr 22
Apr 29 no class (reading day)
May 01 exam