Some Lessons I learned as a Software Engineer & Developer

  • Half of software engineering has nothing to do with computers. Rather, it’s about working with others. Thus, communication skills are essential.
  • Sometimes problem-solving requires the patience of a hunter, even if it feels like going after a unicorn in your backyard.
  • Theory and knowledge is a requisite, but practice is the source of mastery.
  • One must be adoptive and open-minded toward change.
  • Learning never ends. There are always a list of new tools and technologies, and learning and mastering them might be essential.
  • Software engineering is multidisciplinary: business, System Design, human behaviour, …
  • Learning to optimally utilize Search Engines is more important than mastering syntax.
  • Creativity for software engineer is one of the most significant traits.
  • Software Engineering is a creative process.
  • Most tasks can be defined as Workflows and further be refined. However, solving problems is not always a process itself.
  • A software developer must be Methodical & Inquisitive, Analytical & Logical, Creative.
  • It’s crucial to say no, learn when to dismiss and discard ideas and tasks.
  • Self-education is a part of our work. Software development trends and technologies always change, and expecting formal education for them is a folly.
  • Attaining domain knowledge will be a part of most project; There is no escaping it.
  • And then there is what I call “The Succeed Algorithm”:
    1. Create
    2. Test
    3. Evaluate
    4. Improve
    5. Jump to step 2, until you succeed.

Leave a Comment