SitePoint
Blog
Forum
Library
Login
Join Premium
Toggle sidebar
Your First Year in Code
Toggle community discussions
Close
Content
Bookmarks
Preface
Your First Year in Code
Guide
Foreword
About the editor
About this book
1
Introduction: Code is the best, code is the worst
Code is the best
Code is the worst
Code is just a tool
Different learning pathways into tech
The night I discovered code
The path of self-learning
My decision between college and a coding bootcamp
Why I chose a bootcamp
A high-level overview of coding bootcamps
The cost of forsaking a computer science degree
Differences between bootcamps, colleges and self-taught pathways
Similarities: bootcamps & college
Additional resources
How (not) to learn
Build intuition
Knowledge debt
PDL: Problem-Driven Learning
Multiple sources of truth
Fewer subjects at a time
Ask your own questions
Challenge your material
Go back and review
Fundamentals are important
How to code (in one chapter)
What is a computer program?
The tools of the trade
Programming languages
Putting data in code
Complex types
APIs
Functions
Logical branches and comparisons
Loops
Null and undefined
Scopes
Comments
Searching for clues
What is an application?
Conclusion
Steps to better code
0. Naming things
1. Separation of concerns
2. Global variables (are bad)
3. DRY
4. Hiding complexity
5. Proximity
6. Deep nesting (is bad)
7. Pure functions
8. Automated tests
Conclusion
Programming tools
Wars? What wars?
The ancient editor war
The Windows/Linux war
Browser and style wars
Use what you like, focus on learning
You are an interpreter
Nobody cares about your code
Sharing the journey of the user
Everything and yet nothing we want
Part of a larger development community
Deserving of trust and autonomy
Becoming a great programmer
What to learn first
Learning to learn
Reading error messages
How to Google stuff
How to read technical documentation
Ask for help
In conclusion
Make the most of side projects
Famous examples
My projects
Cons
Pros
How
So why not start one?
Getting your first job
Side projects
Revising your resume
Meetups, events and channels
Mentors
Interviewing
Negotiating
Growing and succeeding
My first job
I got my dream job. Now what?
What else is out there?
How to start preparing
Exercise
Burnout, part 1
Burnout, part 2
Do I fit in?
Sabrina’s story
My software developer journey
LGBT
Women in code
Introduction
Choosing a company with the right values
The importance of telling the truth
How to grow a thick skin and handle complexities
Breaking stereotypes: educate men at work
What to do when you're stuck
1. Be self-aware
2. Timebox your frustration
3. Rubber-duck it
4. Draw it
5. Take five
6. Ask for help
7. Isolate the problem
8. Write it up
9. Get a buddy and ask the internet
10. Find a workaround
Finally, document the solution
Choosing a job title
Are you a coder, programmer, developer, engineer, architect or something else?
Sources
Salary data
Analysis
Bibliography & further reading
The DevOps introduction I wish I had
Till not many years ago…
DevOps
The public
What is the main problem when deploying to the cloud?
Running an application in various operating systems
Docker and containers in general
Docker vs. virtual machines
Provisioning
Continuous Integration and Continuous Delivery (CI/CD)
Tips for the future
A coder's code of ethics
Privacy
Preventing bugs and outages
Avoiding dark patterns
Impartiality and accessibility
Do no harm
The golden user story
Software development beyond the keyboard
Asking hard questions
Contributing to UX and feature discussions
Talking to users
Writing documentation
Code design
Development isn’t just code
Code reviews
What is a code review?
Why do we do code reviews?
Who should review a junior developer’s code?
How should you review someone’s code?
Appendix A: A coder's vocabulary
Appendix B: To make this, learn that
Appendix C: Recommended reading
Acknowledgements
Guest authors
Beta readers
Cover design
Open text modal
Community Questions
Close