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
Rate it:
Open Preview
3%
Flag icon
First, I recommend Code Complete by Steve McConnell. This is a classic book every software developer should read. The second is Clean Code by Robert Martin, another classic book which will help you learn to write better code.
Ranjith Kumar
books for coding
4%
Flag icon
There are several data structures all software developers should be familiar with including: Arrays or vectors Linked lists Stacks Queues Trees Hashes Sets
Ranjith Kumar
data structures a developer must have knowledge about.
4%
Flag icon
The best resource, at the time of this writing at least, is by far Gayle Laakmann McDowell’s excellent book, Cracking the Coding Interview.
Ranjith Kumar
best book on algos and data structures. Need to prioritize this over anything.
4%
Flag icon
I’m going to define a platform as a specific environment that you develop for, which has its own ecosystem and particularities.
Ranjith Kumar
platform definition - platform developer
5%
Flag icon
A framework is simply a set of libraries that are used to develop code on a particular platform or on multiple platforms.
Ranjith Kumar
framework definition
5%
Flag icon
A stack is a set of technologies, usually including a framework, that are commonly used together to create a full application.
5%
Flag icon
A sophisticated build system may also run unit tests or user tests, run code quality checks, and provide some reporting on the current state of the code base.
Ranjith Kumar
build system
5%
Flag icon
A deployment system will be responsible for deploying the code either to a production machine or perhaps to some kind of a test environment.
Ranjith Kumar
deployment system
6%
Flag icon
Finally, you take what you learned and you teach it to someone else.
6%
Flag icon
You’ll have a much easier time learning something if you have an immediate application for it—a real reason to learn it.
10%
Flag icon
I’ve already mentioned one good resource for these kinds of problems, but here are some more: Cracking the Coding Interview by Gayle Laakmann McDowell Programming Pearls by Jon Bentley Project Euler Codility Interview Cake TopCoder (check out the practice rooms for the algorithm contests) These problems will be extremely difficult at first, and that is ok. They are supposed to be.
Ranjith Kumar
references to solve algorithm type programming problems.
39%
Flag icon
I often encourage beginner developers who are having a difficult time breaking into the industry to consider building a few mobile applications and getting them deployed on one of the mobile app stores. Doing so can help you have the kind of prerequisite proof that you can actually write code and produce a complete working application.
39%
Flag icon
In reality, even though front-end development gets most of the glory, most of the code that exists in the world—arguably the most useful of it—is back-end code that is never seen by the end user.
40%
Flag icon
application. A good back-end developer will know how to utilize various frameworks and libraries, how to integrate them into an application, and how to structure the code and business logic in a way that makes the system easier to maintain. If you like designing the infrastructure of an application, implementing algorithms and logic, and working with data, you’ll probably enjoy working as a back-end developer.
40%
Flag icon
It’s far better to have a general, working knowledge of everything in the technology stack and a specialized knowledge in a few areas.
Ranjith Kumar
Full stack dev expectations
42%
Flag icon
What exactly is DevOps? Well, it’s a conglomeration or a mashup, if you will, of development and operations. In my mind, I think MacGyver.
Ranjith Kumar
Devops definition
42%
Flag icon
Development teams are building the code multiple times a day and running automated tests and quality checks against the code. Things are no longer as simple as writing the code, building the code and deploying the code. Instead, a whole set of operations and procedures emerged as a way to be as agile as possible and to be able to move code quickly from development to production.
42%
Flag icon
It’s the multidisciplinary process of getting code from development to production and taking care of the code when it’s there.
Ranjith Kumar
What is devops
43%
Flag icon
Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan
Ranjith Kumar
Agile manifesto
44%
Flag icon
The development process for an XP project is centered around an extremely focused set of disciplines.
Ranjith Kumar
XP principles
44%
Flag icon
XP relies heavily on the idea of pair programming where two developers sit together and jointly work on all code that is being created.
46%
Flag icon
Instead, the focus really has to change to developing the test cases and test scenarios up front, before any code is even written and to shrink the test process into a smaller iteration, just like we do when we develop software in an Agile way. This just means that we have to chop things up into smaller pieces and have a bit of a tighter feedback loop. Instead of spending a large amount of time upfront creating a testing plan for the project and intricately designing test cases, teams have to run the testing process at the feature level.
Ranjith Kumar
Prepare test cases upfront
47%
Flag icon
By writing unit tests and strictly adhering to having them test the smallest units of code in isolation, you find all kinds of problems with that code and the design of those units.
Ranjith Kumar
Why need to do unit tests
47%
Flag icon
TDD usually means using unit tests to drive the creation of the production code being written, but it can be applied at any level.
47%
Flag icon
So, in that respect, we could say the purpose of TDD is to make sure we fully understand what we are implementing before we implement and that we “got it right.” If you sit down to do TDD and you can’t figure out what the test should test, it means you need to go ask more questions.
47%
Flag icon
often joke that the best programmer is the one who writes the least code or even finds ways to delete code because that programmer has found a surefire way to reduce errors and to decrease the maintenance cost of the application.
Ranjith Kumar
Best prog practice
47%
Flag icon
what a sample TDD session might look like.
Ranjith Kumar
Sample tdd
49%
Flag icon
CVS and Subversion are two examples of centralized source control. Distributed is newer. It’s probably a bit shinier in most people’s eyes and it’s a bit more complicated, but more people are using it.
49%
Flag icon
Git and Mercurial are two examples of distributed source control.
49%
Flag icon
The biggest difference with using distributed source control is that each developer has a full copy of the entire repository on their own machine.
51%
Flag icon
There was a good amount of resistance, but slowly it was overcome as Agile became more popular. Continuous integration wasn’t just a nice dream, but rather a must-have in order to actually have short enough feedback cycles to get work items completed on each iteration.
51%
Flag icon
Jenkins Jenkins is pretty much my “go to” CI software.
Ranjith Kumar
Continuos integration software
51%
Flag icon
TeamCity TeamCity is another popular continuous integration server, which is created by the commercial company JetBrains. It has a free version, but it is also a licensed product. So, if you are looking for something with a little more professional support, this is a good option. Many .NET teams use TeamCity for their CI needs.
52%
Flag icon
download the Debugging Cheat Sheet that’s included in the online resources for this book.
Ranjith Kumar
Debugging cheatsheet
52%
Flag icon
they want to debug an issue in the code is to fire up the good old debugger and start looking around. Wrong. Don’t do this. The debugger should be your last resort.
Ranjith Kumar
Debugger last resort
54%
Flag icon
Clean Code by Robert Martin – I’ve mentioned this book a few times, but it’s one of the best books about writing clean, readable code, and it also includes great information about design and refactoring for maintainability. Code Complete by Steve McConnell – Again, I’ve mentioned this book a few times already, but it’s another great book about writing good, maintainable code. You’ll find this book goes into some of the low-level, structural details of writing good, readable code. Read it. Combined, Clean Code and Code Complete will give you a solid base and understanding of what makes good, ...more
Ranjith Kumar
Refactoring books
56%
Flag icon
Most great software developers don’t just jump straight into the code and start coding something up.
56%
Flag icon
When I worked as a software developer, I would spend the first 30 minutes of my day browsing software development blogs and keeping myself up to date.
Ranjith Kumar
Tip to stay upto date
58%
Flag icon
Also make sure you are a bit more outgoing and friendly. Say “hello” to everyone you meet, and try to use their first names when you greet them.
Ranjith Kumar
Tips on new job to create first better impression
58%
Flag icon
Read the book Boundaries to get a good understanding of what constitutes reasonable personal boundaries, and how to deal with people who violate those boundaries.
Ranjith Kumar
Book on personal behavior
59%
Flag icon
In the past, I’ve done something as simple as creating a little hanging sign that on one side says “feel free to interrupt,” and the other side says “focusing, please don’t interrupt.”
Ranjith Kumar
Tip to avoid co worker that always talks
60%
Flag icon
As a boss myself, I know that if I have someone working for me who figures out what needs to be done and what I am concerned about and takes care of that before I even have a chance to ask them to, they are extremely valuable.
Ranjith Kumar
What makes extremely valuable emploulyee
60%
Flag icon
It’s such a simple thing, but I am amazed how many software developers fail to create a weekly report each week detailing out what they worked on during the week and giving summaries of progress and any potential issues.
Ranjith Kumar
Report another important factor boss expects
60%
Flag icon
In short, be the person your boss can count on to resolve problems and move the project forward, and you’ll be regarded as an extremely valuable asset.
Ranjith Kumar
Be thye person who can count on you
66%
Flag icon
Don’t come right out and try to convince someone of your ideas on test-driven development (TDD) and why they should be doing it. Instead, do a presentation on TDD. Educate your audience about what TDD is and how it works and how it should be done.
Ranjith Kumar
Educate your team instead of just telling how it should be done.
67%
Flag icon
Dress for the part you are auditioning for.
Ranjith Kumar
why need to dress up well
68%
Flag icon
Note the date and the time and exactly what was said. If you are really smart, you’ll send an email asking that question after having the face-to-face meeting.
Ranjith Kumar
Drop mail after meeting with mentor
69%
Flag icon
Whatever your goal is, figure it out and make it known. Tell your boss what you are trying to accomplish in terms of your review. Make it well known and then ask what you need to do to achieve it.
Ranjith Kumar
Ask and set clear goals
69%
Flag icon
Document the books you’ve read, any trainings you’ve attended or given, anything that shows improvement and progress towards your goals. Look at your previous review and objectives for the year.
Ranjith Kumar
Document and track progress
69%
Flag icon
When someone gives you kudos, ask them to send you an email. I used to keep a kudos folder in my email for storing all the good emails I received from people throughout the year.
Ranjith Kumar
Ask for appreciation mails
« Prev 1