$30 off During Our Annual Pro Sale. View Details »

SECONDARY SKILLS AS A DEVELOPER

SECONDARY SKILLS AS A DEVELOPER

As developers, the first thing we focus on learning is to code. However, when advancing our careers further we realize that there is a lot more to our jobs as software developers.

In this talk, we will take a look at the secondary skills that are useful and required on our career path. Specifically, let’s talk about:

- Git
- Agile Development
- CI/CD
- Writing documentation
- Giving and receiving feedback
- Communication (Speaking, Writing, Sharing)

Adding all these skills to your toolkit not only makes you a better developer but can also be considered essential skills in your career.

More Decks by Jeroen Leenarts (AppForce1)

Other Decks in Technology

Transcript

  1. G E T S T R E A M .

    I O Secondary Skills 
 as a Developer
  2. G E T S T R E A M .

    I O Become an expert in your Secondary Skills…
  3. G E T S T R E A M .

    I O …and gain 
 Superpowers
  4. G E T S T R E A M .

    I O Jeroen Leenarts • iOS Developer Relations Lead • Podcast: AppForce1 • Book: Being a Lead Developer • Over 20 years of experience Amos Gyamfi • iOS Developer Relations Engineer • Switched into Developer Relations from Design
  5. G E T S T R E A M .

    I O Stream Chat • The #1 Chat API for Custom Messaging Apps. • Add fast, real-time messaging to your application in days • Free trial available, no credit card required
  6. G E T S T R E A M .

    I O Trusted by many companies
  7. G E T S T R E A M .

    I O We’re Hiring We’re a passionate and supportive group of professionals from around the word striving for excellence in everything we do. Please visit: https://getstream.io/team
  8. G E T S T R E A M .

    I O The Codelab • Participate and enter a raffle for an Apple gift card and swag • Please visit: https://gstrm.io/swiftheroes22
  9. G E T S T R E A M .

    I O Why Talk About 
 Secondary Skills?
  10. G E T S T R E A M .

    I O Why talk about secondary skills? Secondary skills • Familiarity with Agile practices • Version control • Planning • Etc… Primary skills • Swift • Xcode • SwiftUI Secondary skills • Familiarity with Agile practices • Version control • Planning • Etc… Primary skills • JavaScript • Visual Studio Code • React Framework
  11. G E T S T R E A M .

    I O What stays and remains? • The secondary skills
  12. G E T S T R E A M .

    I O Even skills of an iOS Developer changed Primary skills • Manual memory management to ARC • Obj-C to Swift • UIKit to SwiftUI
  13. G E T S T R E A M .

    I O So find the skills that stay with you • Change is constant • Externally you will always change your coat • Fast or slow, it happens • Just look at the job posting that interest you over the years • But like with any high skilled job, your core tools remain • Stuff that makes your life easier, more productive or versatile
  14. G E T S T R E A M .

    I O So find the skills that stay with you • Projects, environments and teams are different • But we looked for things that are universal and usable everywhere ◦ Maybe all do not apply to you, but we hope by the end of this talk you will have at least one thing you can work on tomorrow • Become an expert in your secondary skills and you gain superpowers
  15. G E T S T R E A M .

    I O Secondary Skills
  16. G E T S T R E A M .

    I O Git / Source Control • What? ◦ Source control is essential for developers to be able to collaborate on code ◦ Safety mechanism
  17. G E T S T R E A M .

    I O • Why? ◦ You’ll be more productive when you know what your Version Control System (VCS ) offers. Especially if you know how to work with it. ◦ You have to deal with it on a daily basis so why not be good at it? Git / Source Control
  18. G E T S T R E A M .

    I O • How? ◦ Version Control Systems are the central hub of your project. Treat them as such, ▪ Github, Gitlab & Azure DevOps have something resembling Issues, Release management, Building infrastructure, etc.. ▪ A big advantage of these platform-specific features is that they are mostly transferable skills. ▪ Anything that is plain text-based and related to your project is a potential item to put in version control 
 Git / Source Control
  19. G E T S T R E A M .

    I O • How? ◦ In git there are a few lesser-known principles/commands that might give you superpowers: ▪ cherry-picking, amending, solving merge-conflicts, reverting, reflog ▪ branching off of a change you made last week ◦ Some people prefer a GUI, some people prefer the command-line ▪ find whatever you’re most comfortable/productive with Git / Source Control
  20. G E T S T R E A M .

    I O CI/CD • What? ◦ At some point, repetitive tasks can be automated. Automate building the project anytime it changes. ◦ Putting together the components of your product and testing how they work together is best done often
  21. G E T S T R E A M .

    I O • Why? ◦ CI/CD automates integration and delivery ◦ Decrease wasted developer time ◦ Helps maintain projects stability ◦ Integrating/building/releasing often catches all kinds of errors sooner CI/CD
  22. G E T S T R E A M .

    I O • How? ◦ CI/CD pipelines removes repetitive tasks and moves your focus to the creative side of your job ◦ Think about things that annoy you and try to automate it ▪ If you do something for the third time, automate it. ◦ Your VCS offers loads of CI functionality you can use in your workflows ▪ Try to avoid introducing new tools CI/CD
  23. G E T S T R E A M .

    I O • What? ◦ Agile is how you do things. It is not a process. ▪ Being Agile means you are able to adapt, not be tied down to some methodology, because of “reasons” ▪ Being Agile is about evaluating where you are right now, and establishing what next best steps you can take to improve your situation/project/product. Agile Development
  24. G E T S T R E A M .

    I O • Why? ◦ Agile reduces risk by choosing the next best thing to focus on ◦ Speeds up the dev process by compounding small improvements ◦ Shorter feedback cycle ◦ Clear communication ◦ Agile is a mindset ▪ but knowing the process currently being followed is important for every team member. It irons out a lot of the issues in communicating your intentions if all parties involved adopting the same lingua franca. Agile Development
  25. G E T S T R E A M .

    I O • How? ◦ Small increments ◦ Short cycles ▪ Evaluate ▪ Adapt ▪ Implement ◦ Resources to read. Pragmatic Programmer by Prag prog ◦ Hard and soft skill ▪ Some things are process (soft) ▪ Some things are engineering practices (hard) Agile Development
  26. G E T S T R E A M .

    I O Amos Gyamfi • iOS Developer Relations Engineer • Switched into Developer Relations from Design
  27. G E T S T R E A M .

    I O • What? ◦ Having an education does not imply done learning ◦ Following trends (not all) in your field (and outside of it) and figure out which skills are necessary/interesting Learning
  28. G E T S T R E A M .

    I O • Why? ◦ Learning never stops → stay competitive ◦ Learning new skills fosters creativity and inspiration to apply in many different areas ◦ To be able to help and achieve your team goals. Learning
  29. G E T S T R E A M .

    I O • How? ◦ Do a personal SWOT analysis first to identify where you need to improve ◦ Have a commitment to what you need to learn to improve ◦ Allocate time ▪ During regular working hours ▪ You need your rest ◦ Make a habit out of learning ◦ A company allowing learning during business hours is a good perk to have Learning
  30. G E T S T R E A M .

    I O • How? ◦ Buying a book/course and getting the budget for learning is not equal to learning ▪ Get your hands dirty and do the work ▪ But it might help you communicate clear goals with your manager and allocate fixed time slots for doing this. 
 ( It’s common that when there’s “more urgent things to do” this will be the first thing to be cut off the list.) Learning
  31. G E T S T R E A M .

    I O ◦ How? ▪ It’s okay to follow curiosity and experiment without a clear goal in mind • Participation in meetups/user groups • try out that interesting API • look at that new framework • experiment with that new language • learn to play piano • Remember how you learned new things as a kid Learning
  32. G E T S T R E A M .

    I O Learning
  33. G E T S T R E A M .

    I O • What? ◦ Have some basic understanding of design relevant to app development ▪ Font metrics ▪ Apple’s HIG • Explains how Apple has intended many of their design concepts inherently available in iOS • See Jane Bondar’s talk 
 UI/UX BASICS FOR IOS DEVELOPERS Design
  34. G E T S T R E A M .

    I O • Why? ◦ Give feedback on the designs you receive ▪ Ask questions, you will get answers and learn ◦ Consistency across the screen, but also the app ◦ Be able to make the right calls when implementing a screen ◦ Design is about ▪ Making things look good ▪ Making things usable ◦ A design implemented with Apple’s HIG in mind is more accessible ▪ Accessibility is a separate topic we did not discuss in this talk • See https://developer.apple.com/accessibility/ios/ Design
  35. G E T S T R E A M .

    I O • How? ◦ Read the Apple Human Interface Guidelines(HIG) ▪ Big doc, well written ▪ Loads of visual examples explaining concepts. ▪ See: https://developer.apple.com/design/human- interface-guidelines/ • See section Typography on all the basics you need on font metrics ◦ Get inspired by other apps and people ▪ Be curious about other people’s apps. ▪ See: https://mobbin.design/browse/ios/apps Design
  36. G E T S T R E A M .

    I O Communication (Speaking, Writing, Sharing) • What? ◦ Everything we do ▪ Messages ▪ Conversations / Discussions ▪ Giving/Receiving feedback ▪ Talks ▪ Code (! ) ▪ Documentation ▪ non-verbal ▪ Meetings ▪ Emails ▪ Slack/chat ▪ Socials
  37. G E T S T R E A M .

    I O • Why? ◦ We constantly communicate ◦ Good communication leads to good relationships ◦ Speaking/Writing/Sharing will help you learn and helps colleagues/ managers understand your work and the effort it requires ◦ You also communicate to your future self ▪ Do you remember/understand the code you wrote 2 weeks (*hours) ago? ▪ Decisions are documented for everyone (including yourself) Communication
  38. G E T S T R E A M .

    I O • How? ◦ Treat all communication as an engineering practice: principles like DRY apply (Don’t Repeat Yourself) ◦ coding ◦ using language Communication
  39. G E T S T R E A M .

    I O • How? ◦ Always start with an outline ▪ Know what you want to say before saying it • Especially in async teams: OVERCOMMUNICATION is better Communication
  40. G E T S T R E A M .

    I O • How? ◦ Async comms is always better ▪ Big message? • Put it somewhere more permanent, like a wiki, notion, or other document repository. • Keep the discussion on/attached to the doc itself ◦ Provides tracking of history ◦ Insight into why things are the way they are. ▪ Find the right place for the right message Communication
  41. G E T S T R E A M .

    I O • How? ◦ Make sure you run and participate in good meetings ▪ Have a clear goal BEFORE starting the meeting everyone agrees on ▪ In general: as few people as possible (pizza rule) ▪ Prepare for meetings ▪ Read the docs/email in a meeting request before the meeting Communication
  42. G E T S T R E A M .

    I O • How? ◦ Make sure that everyone has a voice 
 —> The loudest person usually does not have the best idea ◦ Some people are inherently more introverted ▪ This does not imply putting them on the spot during the meeting ▪ Just talk/chat with them before or after Communication
  43. G E T S T R E A M .

    I O • How? ◦ When dealing with feedback, make sure to give it the attention and care it deserves ▪ Concise and clear feedback is appreciated by others ▪ When given to you it can boost your skills and learning opportunities ▪ Praise publicly and repeat in person with line management ▪ Constructive feedback in person, especially if it is about points of improvement ▪ When receiving feedback: Listen Communication
  44. G E T S T R E A M .

    I O • What? ◦ Make valuable contributions to your team ◦ Be appreciated for your work/involvement ◦ Appreciate the work/involvement of your peers ◦ Produce more than the sum of the work of each individual Being A Team Player
  45. G E T S T R E A M .

    I O • Why ◦ An inclusive atmosphere starts with YOU ▪ Culture starts with you ▪ Remember diversity, try (how hard can it be right? ) to leave behind prejudice • Blissfully unaware doesn’t cut it anymore today • Everyone has prejudice! 
 Reflect upon that fact, act accordingly Being A Team Player
  46. G E T S T R E A M .

    I O • How ◦ Want to be trusted by your peers? ▪ Behave in a trustworthy way • Be on time • If in doubt, communicate ◦ Keeping things Implicit often causes issues ◦ Always better to communicate more ▪ Support work of others ◦ Start with implied trust ▪ When people feel trusted and appreciated, they feel safe enough to voice issues or concerns they have ◦ Sometimes it is simple things ▪ The pac-man rule for conferences Being A Team Player
  47. G E T S T R E A M .

    I O Jeroen Leenarts • iOS Developer Relations Lead • Podcast: AppForce1 • Book: Being a Lead Developer • Over 20 years of experience
  48. G E T S T R E A M .

    I O • What ◦ Time management is about making sure you work on what is important for you ▪ When in a job, it is about the work/tasks you are paid to do • Glue work is important, but often not recognized. • When you are self-employed it is about making sure you do the work that pays the bills and allows you to keep doing that into the future Time Management
  49. G E T S T R E A M .

    I O • Why ◦ Know what is important and schedule for those things ▪ Allows you to know when you are off track ◦ But, non core work is important too ▪ It keeps you sane and a well rounded individual ◦ Remember to schedule time for learning/exploring, communicating, breaks and focussed work ◦ Many jobs have days you feel you hardly got any work done. ▪ I was in meetings all day! ▪ Planning your day in advance tells you if you really have a wasted day or not. Time Management
  50. G E T S T R E A M .

    I O • How ◦ If you are not aware of what you are planning to work on, it is very hard to say NO when you should. ▪ Saying yes to too many things gets you overwhelmed and eventually burned out. ◦ A lot of tasks are glue work ▪ Stuff that happens because it is good for the team and/ or environment. ▪ Should you be the one doing this? Time Management
  51. G E T S T R E A M .

    I O • How ◦ Take care of distractions like email, chat, etc. ▪ Especially if you are in an email-heavy org. • Only open your email client when ready to deal with it • Don’t keep your email open the entire day ◦ Same for Chat/Slack ▪ Set it to Do Not Disturb when need ▪ DO NOT respond to every message immediately ▪ People can wait and often help themselves Time Management
  52. G E T S T R E A M .

    I O • How? ◦ Track time, manually or automated ▪ Discover when and where you are going off track. ◦ Book time in your schedule when you want to do focus work • Guard those hours with your life • Someone schedules on those blocks? ◦ Deny or reschedule ◦ Schedule your day, the day before. ▪ Hardly anything is important enough to require a meeting half an hour from now • Good meetings require preparation • You can’t in half an hour. Time Management
  53. G E T S T R E A M .

    I O • How? ◦ Learn to say no! ▪ It’s okay to have enough work so that you can’t take more ▪ Keeping a healthy workload increases your productivity ▪ In our job more results do not scale with more time spent Time Management
  54. G E T S T R E A M .

    I O • What ◦ Take notes on pretty much anything ▪ Meetings ▪ Your day to day work ▪ On anything, you do really Note-taking
  55. G E T S T R E A M .

    I O • Why ◦ Increases retention ◦ Allows you to come back to concepts later more easily ◦ Makes processing your day a separate activity ◦ Keeps things out of your head & frees up memory space Note-taking
  56. G E T S T R E A M .

    I O • How? ◦ Just write stuff down, either physical or digital ◦ Make sure to take time each day to review & proces notes ▪ Throw away what is not important ▪ Archive the things that are meaningful ▪ Rewrite/restructure when needed ▪ Hang on to your processed notes Note-taking
  57. G E T S T R E A M .

    I O Conclusion • Recap ◦ Toolbelt items discussed ◦ There are many more tools at your disposal, big and small.
  58. G E T S T R E A M .

    I O Conclusion • Don't forget about the Codelab 💸 ◦ https://gstrm.io/swiftheroes22 • Books: ◦ Pragmatic Programmer book: https://gstrm.io/pragprog ◦ Being a Lead Software Developer by Jeroen: https://gstrm.io/leaddeveloper
  59. G E T S T R E A M .

    I O Thank You.
  60. G E T S T R E A M .

    I O Follow us on Twitter @appforce1 ( Jeroen) @amos_gyamfi Amos