Introduction
TBD
Summary
TBD
References
TBD
Complete Demo Code
Here’s the entire implementation up to this point as one file. Copy and paste it into a Java environment and execute it. If you don’t have Java, try this Online Java Environment. Play with the implementation. Copy and paste the code into Generative AI for analysis and comments.
NOTES
- New things to learn:
- Domain
- Process
- SE Practices, Patterns, Principles, Procedures, etc. … The Ps.
- New technology coming, especially AI.
- Learning. O’Reilly. Modern Software Engineering. Blogs.
- https://missing.csail.mit.edu/
- Focus upon AI.
- AI – https://www.youtube.com/watch?v=lJiDBRh96oU
- Vibe Coding?
- Directing it like an Architect or Tech Lead.
- If directing, you’ll need to learn Software Engineering skills, such as Design Patterns, Practices/Procedures like TDD, BDD, etc. Organization such as DDD. You may not have to know how to do these directly, but you may need to know how to do them well enough to direct the AI and evaluation what it has produced.
- Take new assignments
- Keep list of accomplishments.
- Stories. What you have done. Good for your current job and the future job too.
- You’re a mercenary
- Don’t expect loyalty from your employer. Follow up to finding a job. It’s not personal, just business.
- You’ll learn more by teaching or explaining something. The Pitt – See one. Do one. Teach one. (SODOTO). It places you in a different frame of mine, much like Rubber Ducking. You may be surprised by how much you actually know or understand something. You may get questions or feedback that makes you think even more about something that helps you gain even better understanding. This applies to almost anything, technology, processes, patterns, business domain, etc.
- When accepting a position, try to stay for at least a year.
Continuing Education
Your Computer Science degree is not the end of your education.
It is just the beginning of your education. You’ve been studying Computer Science. Your career will be Software Engineering. They are related, but different as I described in You Studied Computer Science. Your Career Will Be Software Engineering.
Things will change from your academic career to your business career. The questions will be broader and less well defined. The answers will be fuzzy. The customer won’t be able to describe what they want, but they’ll know it when they see it. Or more likely, they tell you that what they see isn’t what they wanted. You’re not in it alone. You’re part of a team. Solve problems together. You can look for solutions anywhere.
Use LLMs thoughtfully and strategically to understand the business and technology but verify anything it produces. They hallucinate/confabulate results.
Use LLMs to summarize complex online company documents. Use LLMs to give you an understanding of what some legacy code does. However, do not put any company proprietary content, documentation or code, in a generic LLM, such as ChatGPT. We don’t know how it might absorb that content and redistribute it. Ask your mentor/manager which LLMs you can safely use. Hopefully, your new employer has a company-approved LLM that you can use safely.
Code Reviews Are Part of the Process
In college, you usually submit an assignment, receive a grade, and move on.
In industry, your work will be reviewed by other engineers before it becomes part of the product.
This is normal and healthy.
Code reviews are not criticism of you personally. They are how teams maintain quality, share knowledge, and help engineers learn from one another. Expect feedback, ask questions if something isn’t clear, and view the process as part of your growth as a software engineer.
Learning to Read Existing Code
Most assignments in college involve writing code from scratch. In industry, a large portion of your work will involve reading and understanding code written by other people.
Large codebases can take time to understand. This is normal. Focus on understanding small pieces at first, follow the flow of the code, and ask questions when something doesn’t make sense.
Reading code is an essential engineering skill, and it improves with practice.
The First-Year Learning Curve
It often takes several months before a new developer feels comfortable and productive in a professional codebase.
You are learning the product, the tools, the architecture, the business domain, and the team’s development practices all at the same time. That is a lot to absorb.
Feeling slow or overwhelmed during the first few months is normal. Stay curious, keep asking good questions, and focus on steady progress rather than immediate mastery.