The book that allowed me to do this is the legendary "Gang of Four" Design Patterns book. Code examples are in C++ and it was written a while ago, but is still recommended as a fantastic resource for learning how to design software well.
There is also the SOLID principles, for object oriented design.
A Smarter Way to Learn JavaScript by Mark Myers is amazing. You don't just read a book about JavaScript - you read a short chapter (1 - 4 pgs max), and then do interactive exercises on the internet. 1,200 reviews and 5 stars on Amazon, you be the judge!
I tried reading Jon Duckett's book but reading alone != competency IMO, using and applying after reading does lead to competency.
Also running through Code Academy's JS section can be pretty beneficial.
On a side note I think Daniel Cleveland's structured approach to the FCC front end cert. is an in interesting read.
Certainly no expert, but if you have a little calculus, and some background in statistics, maybe machine learning could be fruitful to look in to? That is if you don't use that sort of thing already. Certainly if you already have database/data extraction experience your time with ML is going to be much easier.
edit: As far as books, Make Your Own Neural Network by Tariq Rashid had utility to me.
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.
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 ?
Skill - if you look at a book and can't even figure out what the topic is about then it's too advanced. EG: Entity Framework - if you don't know what an ORM is or why it would be a good idea to have a DAL then you might want to skip this and come back later.
Find a popular blog or podcast on your topic then browse through their articles and notes. They should be regularly recommending books or sites that are useful. Then take that book and google other sites for it. Find lots? Good book.
And yes, amazon reviews do matter. EG:
4.4 out of 5 stars, only one version ever published, and all the negative reviews are about the kindle version, and it's basically THE book for learning design patterns, even 20 years later.
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.
I know the Software Design and Principles class at Brigham Young University uses these two books:
I enjoyed them and I think they are helpful for improving application architecture. For example, if you notice that you are basically using a design pattern already you can formalize that to make it easier for the next person who comes along. Plus it helps you see where you violate boundaries.
> 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:
If you have never programmed before I strongly reccomend that you choose another book to learn about computer programming.
I recommend that you begin by reading "Think Java, 2nd edition". In my opinion Think Java is a good introductory book to programming.
Another supposedly good introductory book is Programming: Principles and Practice Using C++. However I can't comment much on it since I haven't read it myself.
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.
​
Not sure which country you're in, friend, but that's the UK edition. I'm not sure if there's a newer edition or not, but this one's really good :)
If you have no mentors at work, or elsewhere, you can always find them in books.
Here are a couple of suggestions:
C++ is easy to learn and notoriously hard to master. If you have a very specific question, the internet is a good place to learn. If you are looking to master the language, online courses are very bad. A book written by an experienced programmer will be far better. This is mainly due to the philosophy behind C++. Unlike a language like python, C++ does not present a "correct" way to do things.
The problem with just looking at the rules and tutorials and then going at it alone are two fold.
First of all, C++ does not double check your work. A wrong code can work. For example lets say you set a variable, deleted the variable and then used a pointer to access the deleted data. This code will likely work. This is because C++ did as you instructed it to. When you said delete the variable, C++ went to the OS and told it that it was no longer using that memory space. However, the OS did not need that space yet so did not alter anything. Hence, your code worked even though it is erroneous. Mistakes like this can turn horrible very fast.
The second reason why being guided by a book is better is simply because C++ is an everything language. C++ allows a lot of programming paradigms which means one problem has a lot of solutions. The problem is knowing which approach would fit best. That is where a wholistic book rather than a short and catchy tutorial will guide you best.
I would recommend the book that the creator of the language wrote. It is good at teaching the mentality that goes along with the language.
I know this isn't what you're looking for, but I had a similar problem. What I found that really helped was doing drills; practicing really helped me see how it all fit together. There's a book called A Smarter Way to Learn Javascript that has an accompanying website where you can do drills. It's not a replacement for FCC, but it worked well for me as an enhancement.
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.
> 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.
I give a copy of this book to every new-grad my team hires. If they give it back to me because they already have a copy, they are instantly my new best friend.
https://www.amazon.com/Make-Your-Own-Neural-Network-ebook/dp/B01EER4Z4G
​
This book is a simple walkthrough of a basic neural network. It is actually quite easy and not scary at all. It's an afternoon project if you are familiar with Python.
Hmm I'm not sure about the "why". For me, Javascript was also an abstract idea and it wasn't until I applied it to a webpage, that it clicked.
Try adding a simple button to your page. Give that button a unique id. Then, in a script tag, use Javascript to listen to the button click and give you an alert whenever it's clicked. That's it. There's no other reason for Javascript other than to get things to do things.
Hope that helps. There's no true way to understand Javascript without hands on practice. It's been 6 years and sometimes Javascript still kicks my butt because it's constantly changing.
A lot of people have been recommending resources to learn. This book was a life changer for me. Read the product description and see if that's the learning style you seek.
*I recommend the physical book, not kindle.
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
https://wccftech.com/wp-content/uploads/2014/10/JavaScript.pdf
https://www.amazon.com/Smarter-Way-Learn-JavaScript-technology-ebook/dp/B00H1W9I6C
I'm doing this along with building random beginner projects. It's a dope book and has cool quizzes at the end of each section.
Read OOP Design Principals, it's what's taught at Computer Science University and sets you up to do create proper code: https://www.amazon.com/Design-Patterns-Object-Oriented-Addison-Wesley-Professional-ebook/dp/B000SEIBB8
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: