This product was mentioned in
with an average of
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.
For me, the biggest pivot in my fundamental thinking was reading Clean Code by Robert C. Martin. I look back at my programming career and there is a clear line separating my time before and after this book.
It's written in Java, and as I recall, not everything in it is either relevant to C# or even advisable for .NET development. (For example, off the top of my head, he advocates for not prefixing interfaces with I. And while his logic made a bit of sense, I don't think it's advisable for C#.NET development.) But it made me think much more about programming as a craft than just "getting the job/feature done" with whatever garbage code that would run. But that said, most of the code and samples are directly applicable to C# and the general concepts are game changing if you're a novice/junior programmer.
The one thing i wish i did earlier is read this book: [link]
It's now a book I buy all of my new team members if they haven't read it. You can really tell the difference between the guys who read it and don't.
The ones who do definitely accelerate themselves into more senior role much faster
Some engineering team here in Amazon have a thing called "Clean Code Party" what we do is we get together and go through a few main section of clean code and mark them as "always do", "most of the time", "never" with examples where ever possible. We all agree to it as a team.
During code review, when we spot bad code, we would comment something like "function is too large, as discussed here <link>"
Thanks for your feedback and for digging into the code! It was a big help. Also sorry for the late response.
> Only found one 'bug'
I will fix it.
> You also might want to rework your 'blocks' array
You are right, this will make it easier.
I wanted to make the enemies move around the map, maybe this might ease things out.
> readability + maintainability
I agree! I will fix it. Some concepts that you pointed out I remembered (but forgot while coding) from Clean Code (Robert Cecil Martin) about conditional encapsulation and the magical numbers.
I'm a non-traditional student myself in a similar situation. Embedded programming is in the realm of Computer Engineering (not to imply that someone from a parallel discipline wouldn't use it). Software Engineering is a specific tool set that computer engineers and electrical engineers do not normally receive, but computer science students usually do, that includes project, team, and time management.
Clean Code: A Handbook of Agile Software Craftsmanship (Robert C. Martin Series) [link]
This is one example of a popular software engineering text that explains some of the basics of the discipline.
I suppose what I'd share from my experience is study what you find interesting and don't worry about what title you end up with. Hopefully someone out in the field will be able to offer a more nuanced perspective.
There is writing readable code, and there is good design & architecture. When you do both it's called writing clean code.
Writing unreadable code does not necessary trap you, it traps your teammates. Build your software with poor design and architecture will trap everyone. Just remember the main purpose of writing clean code is not for yourself, it's for your teammates.
Clean Code -- Good luck!
Clean Code: [link]
Clean Code is a good book for that.
Clean Code and The Pragmatic Programmer are both really popular
>Do you think that online course could help me?
Yes! All that you've described just shows that you're missing some information, which is normal. There're a ton to lean.
Most important, practice! One can only solidify the knowledge through practice. Yes, the first projects will be a mess, but the more you practice the more you hone your skills.
Those Udemy links are examples of what you could look for.
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
Problem-solving is mastered through the divide and conquer rule.
Break the problem into chunks or sub-tasks.
Thereafter, write pseudocode for each of the sub-tasks.
And, lastly, struggling to solve the problems when you're just starting is very normal. It takes time to master the craft of writing algorithms/pseudocode and implementing it with a specific programming language.
Read these two books:
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:
Okay, here are some links I've found useful over the years. Most of these are more on the programming and software side, less so on computer science specifically.
Wiki/forum-like articles and discussions on programming (often humorous): [link]
Martin Fowler's blog. [link]
Uncle Bob's blog (he has controversial opinions on culture, just in case that bothers you): [link]. Uncle Bob also wrote Clean Code and Clean Architecture.
Designing Data-Intensive Applications is another one I see recommended often. I can't vouch for it. Martin Kleppmann is well-known for his distributed computing work.
En amazon se pueden leer algunos capitulos
If you are quite comfortable with Object Oriented Programming then read those two books:
• [link] <- Clean Code, recommended for every newcomer at my work
• [link] <- Clean Architecture
this is from [link]
If you are only used to CodeIgniter, you probably lack a lot of OOP knowledge. Grab a copy of clean code and go through the clean code talks
Clean Code could be a good choice.
Oh, man. I just realized my second comment was providing almost the exact same information as my first comment, rendering it completely redundant. I hope I didn't waste too much of your time reading that.
But, hey, it's not like I littered your codebase with redundant docblocks when a language feature like hinting exists. That would be foolish and would go against the principles of writing clean code.