Bucket Sort is quite an easy to implement algorithm when talking about parallel algorithms. Its main logic is to spare different parts of array into different buckets, then sort them at the same time with another algorithm and put it back together in one big result array.
The book called “Pragmatic Programmer, The: From Journeyman to Master” about software engineering and best practices was first published in 1999. This book was written by two experienced programmers and writers Andrew Hunt and David Thomas who are both known for their big income in respectively agile techniques and Ruby programming language. The Pragmatic Programmer tries to gather all the necessary characteristics of a programmer that creates high quality, easy to reuse and bug free software solutions.
I have recently came up with amazing NetBeans plugin that helps you incredibly speed up your development speed. TextMate users were happy having this kind functionality for a long time now, however now you can download from GitHub and try it on your NetBeans IDE too.
I have already written about best practices for choosing how to put brackets which style of variable writing to choose. However, I would like to talk more about good programming style and its practice.
I might repeat, but knowing and sticking to one good practice is a skilled professional sign and I am sure that you are one or want to be one of them. So you have to know and you can not forget that your program (not only websites) is like a living beast with whom many people might work in the future. Your code is like an art piece that needs editing, renewal and etc. You can not just think that you will always be the person who manages everything and supports all the bugs.
By understanding this you also agree that the code must be maintainable and readable not only for you after a year or two but to other people that may not be so skilled or advanced and otherwise.
There are some professional programmers often talking about good and bad practices of code writing. I would like to talk about this topic a bit more because I think that there some important points for beginners to understand.
When I just started to read about programming and similar stuff, I usually thought that I will write the most fluent, easy-to-read, structurally right code. Moreover, I read as much various articles and tutorials how to do that properly, but the truth was different.
After a while I understood that the most important thing is practice, practice and one more time practice. You can easily learn syntax, best practices, but it is quite hard to adapt them on real life basis. For example, imagine yourself as a beginner PHP programmer who has to create easy to expand CMS. If it is your first project, you will get deep into the thinking of files tree, classes and other similar things. However, you will still write a bad code and that’s just fact which you need to accept.
I remember my first commercial project a simple CMS (Content Management System) which helps accountants to communicate with their customers more easily. Main objective was to create simple inner platform in which registered users could upload their checks, indents, drafts, expenses and other stuff. In addition, accountant which registers his users can view the documents, change their category, status or he can create other necessary forms and documents for the client.
It seemed to be very simple especially when the design was ready for use - I just needed to copy the styles file to another location. However, I made really big mistake by going straight to the job. I did not make any plans what I should make first, what I should do second and so on. The only notes were about database tables and their fields.