John Gialamas
November 2021
info@prosvation.gr
ggialamas@uth.gr
i.gialamas@aegeancollege.gr
giannis.gialamas@upiria.com
info@prosvation.gr
igialamas@sch.gr
ggialamas@uth.grs@uth.gr
Co-founder
Tutor
Operations Manager
Proxy Product Owner
Universities
Aspiring engineers
Great companies
The "Software Engineering Book of Knowledge"
(Bourque et al. 2014),
attempts to enumerate everything a software engineer can and should know to be competent
Research on software engineering processes also implies skills required by engineers.
Various guidelines, methods, and manifestos,
suggest many specific ways of
working,
planning,
and deciding
that are essential for productive teamwork.
Ask a senior Developer or an HR Manager.
"Are some attributes more important than others?"
Attributes of great Software engineers
Attributes of great Software engineers
In general, the most important are:
internal personality traits,
ability to engage with others,
technical capabilities,
and decision-making skills
Not just writing code.
conflict resolution
bug triaging
information seeking
Mentoring
Thinking out of the box
(Research shows that PhD holders have negative relationships with
asking for help and challenging others to improve)
Can you find a solution to any problem at any time?
Ask for Requirements
Learn to say "No"
What Language?
The internet has massively broadened the possible space of software developers' careers.
But this broadened the competition too.
What is the market looking for?
"What you do during your breaks, should be your thing"
-Austin Kleon
How many hours?
1000?
10000?
100000?
Descriptive vs Predictive vs Prescriptive
Programming is 99% self-taught
Practice with friends’ debugging. It exposes you to someone else’s coding style. Learn something from everyone.
Read a lot of Good code. And then read some spaghetti code. Learn from the differences
Always Up to date!!
(What is new and hot?)
Digital knowledge!
Subscribe to newsletters and tools for informing yourself
The things that you used to do five years ago that made you
successful doesn’t matter anymore.
(in fact, they can get you into trouble right now)
Deal with two (or more) sets of customers/POs at once?
Communication skills are needed.
Empathy is also needed.
Respect the business Decisions.
Always try to advise though.
Speak their Language.
(they pay you, and they will pay for your ability to attract funds)
STAKEHOLDER ALIGNMENT
This way everyone will know what the others are working on.
Transparency is crucial!!!
(Also, do not take your work at home. especially on the weekends!)
Stakeholders must participate, so they feel invested and committed to the strategy.
Very good at one
and decent knowledge on some other fields
Malcolm Gladwell, Outliers
Tooling
You cannot be great if you are constantly re-inventing the wheel or using out of date
tools/processes
Do not become any of these
Some more "rules"
Long variables, easy to read.
Self-documented code.
No single letter variable.
Early exit (when you know there is nothing more you can do).
Do not overcomplicate. If it is easy to understand, go with it.
Some more "rules"
Do not overoptimise. The real scenarios are not in front of you. Fixing something that isn’t broken, only makes you spend more time on it.
Be strict with your code and tolerant with others code.
Write code for yourself but for 5years ago.
(Would you understand it 5 years ago?)
Test Test Test!
(Experiment experiment experiment)
Scalable Code
Deep work.
Be distraction free === Notification-free
the greatest impediment to a software company’s growth and profitability.
ggialamas@uth.gr
You can see the whole presentation here
https://bit.ly/3oQV3uU
info@prosvation.gr