#14 in Computer programming books
Reddit mentions of The Clean Coder: A Code of Conduct for Professional Programmers
Sentiment score: 24
Reddit mentions: 42
We found 42 Reddit mentions of The Clean Coder: A Code of Conduct for Professional Programmers. Here are the top ones.
Buying options
View on Amazon.comor
- Prentice Hall
Features:
Specs:
Height | 9 Inches |
Length | 6.9 Inches |
Number of items | 1 |
Release date | May 2011 |
Weight | 0.8377565956 Pounds |
Width | 0.8 Inches |
I read The Clean Coder: A Code of Conduct for Professional Programmers and it introduced quite a few different concepts and lines of thinking for devs. Good read.
honestly, pick up this book. it'll up your professionalism a great deal. part of the responsibility of a good coder is to be able to push back to management. not rudely, but they make their money decisions based on tech they don't know, and it's your job to make sure they understand what's possible and what's not instead of just rolling over and taking it.
Much of this stuff is learnable outside of work, too, at least at a superficially-passable level. Trust me.
Pick up a few seminal books and read them with vigor. That's all you need to do.
Here are some books I can personally recommend from my library:
Software Design
​
Software Industry
Hi! I recommend the following books:
You can find other similar books here and here.
One that I especially liked (although closer to an algorithms textbook, but also had very cool "War Stories") is called The Algorithm Design Manual.
Have fun reading! :D
For the first two I think OP means:
https://www.amazon.com/Design-Patterns-Object-Oriented-Addison-Wesley-Professional-ebook/dp/B000SEIBB8
https://www.amazon.com/Clean-Code-Handbook-Software-Craftsmanship/dp/0132350882
I'd also recommend:
https://www.amazon.com/Clean-Coder-Conduct-Professional-Programmers/dp/0137081073
https://www.amazon.com/Pragmatic-Programmer-Journeyman-Master-dp-020161622X/dp/020161622X
The agile principles are based around the idea of iterative development. This invites what you're calling rework to make the product the best it can be.
Obviously, you're coming at this from a place of frustration because you want to meet deadlines but the "simple" solution is to build all these steps into your estimates. If you're not setting the deadlines, then you need to be up front with your manager about what you can get done in the given time. Maybe it'll work, but not be clean code (the P.S. here is that after it ships, you need time to make it clean). Maybe you can get features X and Y done, but not Z.
Refactoring and code reviews are part of the job. Yes, your manager is going to make suggestions you might not agree with and, yes, the senior devs are going to send you back to the drawing board sometimes. Sometimes it's because they're jerks and sometimes it's because experience has taught them something.
All in all, I'd recommend reading any of the following by Robert Martin. Clean Coder is perhaps most relevant to estimates and deadlines but they're all really helpful.
One book I recommend to my CTO friends is The Clean Coder. It really helped me set the culture for how our development team should behave themselves. I bought a copy for everyone on my team.
I also strongly recommend Hooked. If you're at all involved in the product management side of things, this really helped me understand how to build an engaging product.
Many of my fellow CTO's recommend Extreme Ownership. The idea here is that as a startup team, you have to be willing to (figuratively) die for one another, and you have to have each other's back the way a platoon in combat would.
The Clean Coder: A Code of Conduct for Professional Programmers https://www.amazon.com/dp/0137081073/ref=cm_sw_r_cp_api_i_6rJ6AbTS2DYWA
As software engineer there are of several books like Clean Code and in other fields there are probably other essential books.
But your question probably aims at books that convey general knowledge - increasing specifically the capacity of intelligence is very debatable - in this case my answer is The Art Of Learning.
i’m sorry for this situation, a lot of others answered this question very well. i just want to add that there’s a book called The Clean Coder that talks about this side of being a software engineer, I’ve personally found it an excellent and relevant read that sheds a lot of light onto this side of the job
https://www.amazon.com/Clean-Coder-Conduct-Professional-Programmers/dp/0137081073/ref=mp_s_a_1_1?crid=3JNY7TQSIG54Y&keywords=the+clean+coder&qid=1555869433&s=gateway&sprefix=the+clean+coder&sr=8-1
I've posted this before but I'll repost it here:
Now in terms of the question that you ask in the title - this is what I recommend:
Job Interview Prep
Junior Software Engineer Reading List
Read This First
Fundementals
Understanding Professional Software Environments
Mentality
History
Mid Level Software Engineer Reading List
Read This First
Fundementals
Software Design
Software Engineering Skill Sets
Databases
User Experience
Mentality
History
Specialist Skills
In spite of the fact that many of these won't apply to your specific job I still recommend reading them for the insight, they'll give you into programming language and technology design.
We assign mentors (usually the more experienced team members, but can vary depending on project and resourcing requirements) to new guys who will help them get to grips with things like our methodologies, coding standards, etc.
If we end up with a team consisting of a lot of guys without TDD experience (rare, but my teams can vary depending on other projects/resources within my company), we'll occasionally run TDD workshops where one of my senior guys or myself will go through a fill worked example of TDD, and then point the new guys in the direction of suitable resources so they can self learn (although we support them as much as required).
In terms of resources, there are a number of books we have on our internal "recommended reading" list:
There's a lot of information on the web, but I find sometimes books are just the best source.
A lot of these are known as "Code Smells". Learn to identify them and try to fix them.
Other good books that may help you:
Use something like StyleCop or Linting which are supposed to check and compare your code against best practices.
>The result is that I will feel pressure to commit to a certain amount during a sprint that I know I cannot complete unless I am working over 40 hours a week. This pressure does come from management in the form of surprise or confusion if I try to commit to less than everyone else who is working overtime.
Teams should be working at a sustainable pace. Some overtime is OK but consistent overtime will generally cause more harm than good. The Clean Coder and The Complete Software Developer's Career Guide recommend giving 40 hours per week to your employer. Any hours on top of that should be hours done for your self-improvement.
Only sign up for work that you feel comfortable completing in a 40 hour work week. If you start to get behind on a task towards the end of the sprint, just let the task carry over. My first thought when I see a task not finished in the sprint it was pulled into is "this task must have been more work than we thought." My first thought is not "whoever worked on this task must have been a low performer." If that is the first thought then the team has bigger problems.
The only time I consider it necessary to do overtime is if there is a critical defect in production or we are very far behind on a release and in a situation in which releasing late would cause a lot of problems for our clients or consumers. For example, I sometimes have deadlines set by the government and if I am late on a release, our clients will have to pay fines.
So I recommend only doing more than 40 hours per week during the above scenarios and if your manager has a problem with that then probably consider job searching.
First off starting with some non financial advice stuff
It seems you have things sorted from a technical ability perspective but when it comes down to requirements and understanding what is needed that is something you might fall down on.
This happens a fair bit to be honest with you as systems can get a lot more complex and you are at the mercy of any business analysis which might be done, so as you say you can deliver "it" if you know what "it" is, that comes from experience but can be learnt in other ways.
Couple of book links:
Now financial questions, I would adjust your salary expectations, but it might not be out of the question for you to find something in that area especially depending on how commutable Manchester is, but there are places everywhere which do this kind of work, just might find competition is different.
Yeah, that is completely understandable. It really depends on how much time you want to spend on other things besides programming.
But be aware that in our profession, we are expected to always improve our skills on our own time. So if we put in 40 hours at work every week, we should also spend another 20 hours practicing and learning.
Check out the book "The Clean Coder: A Code of Conduct for Professional Programmers": https://www.amazon.com/Clean-Coder-Conduct-Professional-Programmers/dp/0137081073
A lot of the people that get into the top companies follow a lot of principles described in that book.
I think this is often due to developers not understanding what clean code is or how to motivate it in instances where it will take significantly more time to write than throw-away code. I absolutely love Uncle Bob's Clean Code book, but even more than that, his Clean Coder book talks about the skills to be a professional developer. Skills which include being able to say "no" to poor management decisions and communicate and code professionally.
If the reader must choose between the two, I would recommend the latter. And I do, to all junior developers who ask...
Then read The Clean Coder
The Clean Coder: A Code of Conduct for Professional Programmers (Robert C. Martin Series) https://www.amazon.com/dp/0137081073/ref=cm_sw_r_other_awd_RTd6wbGYJT9K3
Agreed. Unfortunate, but true. Self-taught is a great attribute to have, and the fact that you work on this stuff in your spare time is a plus in an interview situation. But it doesn't mean that you can reliably ship code and work well in a team environment.
By the way, one of the bigger things you can do to look more professional is to work on your communication. You probably don't write like this in the workplace, but if you do, try to write in complete, grammatically correct, fully punctuated sentences.
Try reading The Clean Coder for some ideas on how to be perceived as a professional at work and thus (ideally) be given higher status eventually.
Also, longer term, you may wish to expand beyond the LAMP stack. For better or worse, it's perceived as a lower quality stack, with associated lower quality developers (who are thus cheaper in the marketplace). Supply of developers is also higher in LAMP because it has a very low barrier to entry, pushing pay down. I recommend learning Python or Java.
I've heard good things about a book called Clean Coder that might answer some of your questions. I've been meaning to read it myself.
First time see that site, but I would recommend reading:
This is a list of books I am intending to read as soon as I read through some other books.. A list I created from reading this and some other subreddits daily, so probably this should cover all your need on Clean Coding.
If anyone know any more books well worth reading I would be really glad to hear about them!
Hey mate, I found that the philosophy of stoicism allowed me to really appreciate what I work on (even those crappy legacy systems). Here is a good primer http://www.goodreads.com/book/show/5617966-a-guide-to-the-good-life.
You said that meditation helps, well I think that a good philosophy for your life can build on that.
You have some awesome savings and at least that is something to appreciate!
Edit: Oh there are also some great tips on "workaholism" and the art of saying "no" in the clean coder by uncle bob (https://www.amazon.com/gp/product/0137081073/ref=as_li_tl?ie=UTF8&camp=1789&creative=390957&creativeASIN=0137081073&linkCode=as2&tag=nodogma-20). It is quite a common problem in our industry that we are overworked, but it comes down to our professionalism and standing up for ourselves and making sure that we don't make false promises. The worst thing that could happen to you if you start leaving on the clock and saying no to ridiculous requests is that you get fired and get to take that sabbatical!!
Essential reading:
http://www.amazon.com/Clean-Code-Handbook-Software-Craftsmanship/dp/0132350882/ref=sr_1_1?s=books&ie=UTF8&qid=1426600164&sr=1-1&keywords=clean+code
http://www.amazon.com/Clean-Coder-Conduct-Professional-Programmers/dp/0137081073/ref=sr_1_2?s=books&ie=UTF8&qid=1426600164&sr=1-2&keywords=clean+code
http://www.amazon.com/Code-Complete-Practical-Handbook-Construction/dp/0735619670/ref=sr_1_4?s=books&ie=UTF8&qid=1426600164&sr=1-4&keywords=clean+code
http://www.amazon.com/Pragmatic-Programmer-Journeyman-Master/dp/020161622X/ref=sr_1_5?s=books&ie=UTF8&qid=1426600164&sr=1-5&keywords=clean+code
That what who8877 wrote and this book are my recommendations for you.
The Clean Coder by Bob Martin
Debugging: the 9 Indispensable Rules
So you think Uncle Bob is a recent CS graduate?
He authored this book
https://www.amazon.com/Clean-Coder-Conduct-Professional-Programmers/dp/0137081073
Clean Code Books:
Design Patterns:
And of course, good ol’ practice.
You should really read this book https://www.amazon.com.br/Clean-Coder-Conduct-Professional-Programmers/dp/0137081073
The Clean Coder is pretty great as it talks about being a professional developer and all that that entails. Very opinionated though (as all of Uncle Bob's books are). "If you don't do TDD, fuck you" is a fairly accurate paraphrasing of one chapter. Still, I found a lot of value there.
I recently read Rework which is a very quick read, but very dense with information on how Basecamp runs their business and many ideas of things that you should or should not do. If you do any freelancing or are thinking of starting your own business at some point, I'd recommend it.
Probably going to read Remote next as I'm working with remote business partners myself.
Automate the Boring Stuff with Python Is also something you might want to look into. It is a little bit easier than "Python the Hard Way" in my opinion but reading both at the same time is completely doable.
Edit (added this after a bit of thinking):
For CS in general there are a couple of answers, the first is sadly to give up on reading coding literature on the kindle. Most books will make the code unreadable. But that doesn't mean that there aren't things to read related to programming. My first suggestion would be The clean Coder.
But if you are willing to remove yourself from the kindle I have two more suggestions.
First "The Art of Computer Programming" is the extreme answer. It consists of several books and I have tried going trough it multiple times without success. But each time I open the any of the books in the series I learn something new. But the books should come with big warning, these are not easy to read.
Second I would go trough the CS50 course on edX.com, simply put it's the best introduction to CS available, and it is can be accessed for free.
This is the third book suggested that was written by Uncle Bob.
Can you maybe explain the Difference between:
Clean Code , Clean Architecture and Clean Coder. All books by Uncle Bob
Read these books to get to grips with the latest techniques and ways of working. As an employer I'd be extremely impressed if you'd read these books. They will give you a big head start when trying to move into the professional work environment. Most of them will apply to any programming language but they mainly use Java as the example language but it's very similar to C#. It's books like these that are the difference between a beginner and an expert, but don't forget when you start coding 9-5 with good developers you will very quickly pick things up. We were all in your position at one point, if you get these read it'll all be worth it in the end!
Coding
C# in depth - I've not read this one since I do Java but I've just had a quick glance. This should be pretty useful and it's a respected publisher. I think you should start with this one.
Clean Code - Great book which explains how to write clean concise code, this 1,000,000x. It doesn't matter what language you are using it should apply where ever you write code.
Cleaner Coder - Another Robert Martin book, this one is easy to read and quite short, it's all about conducting yourself in a professional manner when you are coding. Estimating time, working with co-workers, etc.. Another good read.
Growing Object-Oriented Software - This book is about writing code using test driven development. It explains the ideas and methodologies and then has a large example of a project that you build with TDD. I just read this recently and it is really good.
Head first design patterns - This book goes through essential design patterns when coding with an object orientated language. Another essential read. Very easy to read, lots of diagrams so no excuses to not read it!
Work Methodologys
Kanban
Succeeding with Agile
p.s
Start building stuff, get an account on linked in and state the languages you are working with. This will help as well because having something to show an employer is priceless.
Well you you’ve learned your lessons the hard way. You learned some lessons right? Let me guess, rigid and coupled code really hard to change when the customer pulls 180s on you?
Good news! Many a great has done the same before you!
Read these books:
https://www.amazon.com/Refactoring-Improving-Existing-Addison-Wesley-Signature/dp/0134757599/ref=sr_1_1?crid=BMSFJX83NS1L&keywords=refactoring&qid=1555768426&s=gateway&sprefix=Refacto%2Caps%2C208&sr=8-1
https://www.amazon.com/Clean-Coder-Conduct-Professional-Programmers/dp/0137081073/ref=sr_1_2?keywords=Clean+code&qid=1555768503&s=gateway&sr=8-2
Refactoring: Improving the Design of Existing Code
Clean Code
The Clean Coder
if you need a comment for every function then either you are not spending enough time naming your functions or you are not respecting the single responsibility principle.
Comments should be few and far between and only say why something is needed not what it does (with the exceptions of very complicated regex or some unreadable math.)
https://www.amazon.com/Clean-Coder-Conduct-Professional-Programmers/dp/0137081073
Hey /u/derplefacelel, you are in a tough spot, and this sounds like a tough situation. I think you dodged a bullet here, though I know it doesn't feel like it right now. I think this because the worst thing you can do is delete the wrong data, and the story you've told, as others have pointed out, is a recipe for 'fuck, the users table is gone'.
I think you'll find that /u/UnregisteredIdiot up at the top comments is pretty much right. This screw up is trivial, and you'll need to get used to the pressure. However your story, both in regards to your boss and yourself, points to many serious issues in your office that contributed to this particular situation.
I think you'll find The Clean Coder an excellent resource in helping you learn to better manage your boss, set reasonable expectations and deal with the pressure that /u/UnregisteredIdiot speaks of. Good luck and keep learning man, you'll find your mojo :)
There's a temptation to fix and release without testing, but that's not the professional thing to do. Remember, you have a responsibility, and part of that is not releasing code that you aren't 100% positive of.
I'd suggest you give Clean Coder a read...
A year from now you will look at your code and say the exact same thing. One of the best ways is to simply write and read a lot of code. http://www.amazon.com/The-Clean-Coder-Professional-Programmers/dp/0137081073 This is a book a lot of people recommended you may want to give it a look. Here is a breif guide of javascript design patterns http://code.tutsplus.com/tutorials/understanding-design-patterns-in-javascript--net-25930 Another design related link http://addyosmani.com/scalablejs/ I havent gotten the chance to read it myself but the author is very knowledgeable so I have faith its high quality.
My personal favorite way to learn how to structure code is to read tutorials and see how the author designed his program. From there I try to understand why they structured their code that way and compare it to how I would have done it. Lastly, your english is fine. :)
Sorry you had to experience that. I suggest you read Clean Coder.
I don't have any for Software Architecture specifically yet. But in regards to skill level as a programmer, definitely have the concepts from this book under your belt: http://www.amazon.com/The-Clean-Coder-Professional-Programmers/dp/0137081073
This level of quality coding should be 2nd nature.