Take a look at this book, Staff Engineer: Leadership Beyond The Management Track. It might give you some insight and help answer some of your questions.
EDIT: My main takeaway is that I don't really want to be a lead, but it's where I am at the moment, and I'm not terrible at it, so might as well see where it goes over the next few years.
This book is based on studies/evidence:
There is some sad truth behind your question: Our industry is based on gut feeling. We do tons of things, even after the evidence tells us that it does not work. Software estimation comes to mind.
Buy a good book (Amazon will get one to you delivered tomorrow) and spend a week going through all the examples chapter by chapter. Then think of a small but meaningful project of your own and spend a few days coding it - submit the code to this subreddit for general comments, and then spend the final of the three weeks writing a new project for a few days and going through the submission to this subreddit for more comments. You can't become an 'expert' in three weeks but you can learn most by going through a cycle of reading/doing/reviewing a couple of times.
That's what I'd do anyway but we all learn in different ways.
I mean, I'd never hire a senior engineer who couldn't tell me how they added value to the business, but maybe that's just me.
I'm in the middle of reading this book per request of my VP. It contains interviews with staff engineers at Dropbox, Stripe, Squarespace, Split, Mailchimp, Fastly, Slack, Auth0, and Samsara. They all seem to contribute heavily in the archtypes that they're asked to fill within their orgs. So, I'd say so, yes.
Clean Code and The Pragmatic Programmer are both really popular
Per il secondo punto forse questo: https://www.amazon.it/Code-Language-Computer-Developer-Practices-ebook/dp/B00JDMPOK2 ?
https://www.amazon.com/Python-Crash-Course-Eric-Matthes-ebook/dp/B07J4521M3
Hands down the best book I have read on python when I was first starting out, you must practice all concepts in the book and trust me you will start to understand it.
I have read a lot of beginner python books and this one helped me a lot more than others because of how concise it is.
If you prefer videos, I recommend Corey Schafer on youtube, his python playlists helped a lot of people I know, after I recommended it to them.
I recommend a good book (especially from No Starch Press) such as this one:
https://www.amazon.com/Python-Crash-Course-Eric-Matthes-ebook/dp/B07J4521M3
Personally, I've never been able to stick with MOOCs or code camps, and for my learning style they never really explain the concepts in enough depth.
> Some intersting reads: > > https://www.amazon.com/Staff-Engineer-Leadership-beyond-management-ebook/dp/B08RMSHYGG >
This is a good, pragmatic book. If someone reading this is on the fence about buying it, there's a companion website that includes a lot of the information for free. The guides in particular are helpful:
You could possibly talk about the importance of the master / main branch and how changes are merged into that from others. The concept of collaboration using pull requests as good as well, if only to hammer home Git as a tool to bring changes together.
I needed to learn Git about 18 months ago and I started with this book. It's free in its Kindle form and I thought it was excellent. You can work through it in a few days and do any exercises on a computer without needing web access, Github or any online remote repositories. https://www.amazon.co.uk/Rys-Git-Tutorial-Ryan-Hodson-ebook/dp/B00QFIA5OC
I hope that helps, but I'd be really interested to hear the comments of other Git users.
I'd start by reading Work Effectively with Legacy Code https://www.amazon.com/Working-Effectively-Legacy-Code-EFFECT-ebook/dp/B005OYHF0A?ref=d6k_applink_bb_dls&dplnkId=62db19fa-06c9-4e13-8ee5-7e7df5b83129
It will give you the basis for meaningful conversations with the team.
With regards to bugs, there are 3 types.
I recommend against story pointing anything except user stories. Ultimately what you want to forecast for planning is "amount of user value" (velocity). Teams naturally start estimating bugs or tasks, but all that overhead is actually already measured just by the user stories. If bugs and tasks take up more time, then the Velocity goes down. It is key here to measure output for the customer NOT amount of work done by the team.
If you have no mentors at work, or elsewhere, you can always find them in books.
Here are a couple of suggestions:
This is something of an oversimplification; in <u>Accelerate</u>, which goes into the DORA metrics more in depth, they go more into their methodology and explain how the metrics correlate with better business outcomes and higher employee satisfaction. (In other words, like any metrics, these can be gamed or can fail to take important measures into account - but there's also solid evidence and reasoning behind them, and they're not just measuring how easy the changes are.)
>how old the codebase is ? ( to prevent legacy code)
I'd highly advise you to get comfortable with navigating legacy code. It's going to make you invaluable as an engineer. This is a great book on the topic.
All code becomes legacy code at some point.
Nope. The authors of the definitive study included that possibility in the study. https://www.amazon.com/Accelerate-Software-Performing-Technology-Organizations-ebook/dp/B07B9F83WM
Pre-existing teams which adopted a faster cadence of releases saw their number of features released go up and their number of defects (total and per release) go down.
Releasing faster means you release better software, on net.
None of the above. I'd recommend beginning systematically, with a good book. For example, Python Crash Course. https://www.amazon.com/Python-Crash-Course-Eric-Matthes-ebook/dp/B07J4521M3/. If after going through your first language step by step you're still into it, then poke around for other resources and perhaps consider a more formal program. Don't spend a lot of money without first digging in deeply to see how you like it.
I would say read a book of soft skills. Purely technical skills alone will only get you so far. I recommend book below. It focuses on software development but since we all are going to be software developers with the advent of infrastructure as code the advice is practical for anyone in tech.
The Complete Software Developer's Career Guide: How to Learn Your Next Programming Language, Ace Your Programming Interview, and Land The Coding Job Of Your Dreams https://www.amazon.com/dp/B073X6GNJ1/ref=cm_sw_r_cp_api_glt_CB2AMPA1CDAG8GPGNN3D
If you want to be a systems engineer/admin, work at a small company first. That way you understand back office(sysadmin) and front office(desktop support). Then work at a big company or mid sized company.
Read this book:
https://www.amazon.com/Complete-Software-Developers-Career-Guide-ebook/dp/B073X6GNJ1
​
This book is geared towards devs but we are all becoming devs anyway. Applies to anyone in tech.
> Were you attending lectures the whole time?
It attended lectures in person, I think it would have been a lot harder to do remotely.
> Did you land a job in the field if you dont mind me asking.
After graduating it took a few months before I landed a job as a software engineer, I put that down more to the fact that I really hadn't coded that much. But six years later I'm earning 150k as a tech lead so it worked out for me in the end :)
> Im a bit bummed that the only grad diploma in my city is at a polytech, which will be even less appealing than the same at a university
University/polytech will teach you first principles and theoretical background, which are super helpful. But at the end of the day, what really matters is experience. I've recently been interviewing potential junior engineers to join my team, and honestly I barely look at the education section of their CVs. What really interests me is any practical experience they have, and of course how well they do on the technical test.
Whatever course you end up doing, you need to write lots of code. Start side projects, try make a website, take odd coding jobs, build up that portfolio. And finally, read Clean Code by Uncle Bob. It'll change your life.
Clean Code is often recommended. You can also try looking up the author Robert Martin (or Uncle Bob as he's sometimes known) on YouTube: try this
I mentioned elsewhere in this thread, but I'm currently reading this book: https://www.amazon.com/Staff-Engineer-Leadership-beyond-management-ebook/dp/B08RMSHYGG , and it talks a lot about how to move from the executor role into the technical leadership position. Even as a technical leader in my own company, I often find myself getting sucked into low level problems and executing because it's such a nice dopamine hit to solve immediate problems, right? But moving beyond that mindset is the necessary next step.
If I had to give super general advice on how to go from one to the other, I would say:
So whenever a new employee starts we get them to read through Clean Code. There is a lot of good advice in this thread. But as for naming keeping things easier to maintain its a very good read if maybe a little outdated.
https://www.amazon.com.br/Clean-Code-Handbook-Software-Craftsmanship-ebook/dp/B001GSTOAM
I love all the pictures nformation people have nowadays. It's awesome but can be a bit overwhelming. I started as a kid in the 80s when every pc came with basic. Basic ( not to confuse with visual basic) was procedural and made you think like a computer thinks. (like c). You wanted to learn more you bought a book or read magazines with code on them.
If you want a holistic overview of code and how computers work, I suggest the book Code by Charles pet old. It's a very fun read that starts with Morse code and ends up in binary/hex and how memory works https://www.amazon.com/dp/B00JDMPOK2/ref=cm_sw_r_cp_apa_glt_780BZNGCV15CV8E58Y0S
If you just want to grasp c#, try a head first book. Learn about classes And how to structure them.
It's a huge topic and I can answer any questions
Never too late. My university is pretty competitive and I still see students aged in their 50-60s trying to earn their CS degree.
If want to try out a simple language and just “dip” into programming, I definitely recommend learning a higher level language (like Python) and see if you find it interesting.
As for how to learn it, you can try videos or books. This guy named Corey Schafer makes great python videos on youtube, there is also Python Crash Course 2nd Edition, which I used to taught a summer code camp at a high school.
Happy to help!
The "test driven" one, written by the Unity creators, is really good and focused on the Unity framework, but the same concepts can be applied to the Cpputest.
These two classics might help you on making a clean codebase:
Recently started learning. Taking the CS50x course offered by Harvard online. Bought this book and am going through it. Also looking at this document to guide me through resources. Basically doing whatever I can to get on the right track. Made a game with scratch and it seems like my CS50 course is moving on to C++ now.
Think I wanna be a back end dev but not 100% sure yet still exploring my options. I got really excited about Pen Testing actually but was told that was basically out of the question for anyone self-studying.
With a new-born + pandemic it's not easy, but it's worth it to be happy and give her a better life.