Programming is an amazing, fun adventure for the newly initiated. Although these individuals can come from any age or background, most of them are high school or college students looking for an opportunity to learn and flex their educational muscles. 'Newbs,' as they are called, are filled with positive, uplifting attitudes that can be a refreshing break from the seasoned/traveled professional. Educational environments can be very helpful in guiding and shaping young programming minds. They teach the foundation that all developers require to find success in the industry. Unfortunately, the other side of programming is sometimes overlooked. Communicating about this area is desperately lacking and ultimately becomes a common place where newbs become frustrated and disillusioned; but it doesn't have to be that way.
This common point of disillusionment is where programming intersects with business. Most programmers enter the profession due to a love for "building things." They love the challenge brought on by new ideas. Most developers would compare themselves to artists recognizing that each developer has his/her own style and rhythm. Introducing business into the mix can drive a wedge through those aspirations. Every programmer loves a project with an unlimited budget and time, but most companies cannot afford that luxury. Having conversations such as "good enough," "minimally viable," or "quick and dirty" are common in business. Additionally, technical debt and refactoring becoming a part of life. Although most programmers strive to avoid these situations, the business pays the bills. Just as a customer advises a car mechanic to only fix what is broken, sometimes programmers are asked to do the same. The cheaper/quicker a repair becomes, the more time/money available. For many newbs this can be disheartening.
It's important to teach them that their heart is still in the right place. It's only their focus that needs some adjustment. The challenge of programming is not lost. That spark or fire within need not burn out. Developers can challenge themselves in many new and interesting ways that can be even more rewarding. The following is a list of areas that drive most seasoned developers:
- Writing the best possible code within the time constraints
- Finding new ways to polish old code (instead of building from scratch)
- Continuously looking for ways to do more with less
- Finding ways to move faster without sacrificing quality
- Taking pride and ownership in meeting/exceeding deadlines - IMPORTANT
- Looking for low-risk innovative ways to combine ideas or technology
- Finding ways to make more money or reduce costs for a company
- Constantly striving for more knowledge and educating others