Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 6 years ago.
Improve this question
I am looking for the best resources, videos, books, magazines(I like videos) to learn and master Object Oriented design and analysis. I would really like to know more about trusted and reputable methodologies for structuring your programs, designing classes, and dealing with databases in your programs. So, my question is what are the best resources?
thanks
The 'Head First' books are very good:
Object oriented analysis and design
Design patterns
Gotta read Uncle Bob Martin's columns at Object Mentor. He's been writing good things about object-oriented programming since C++ Report in the 90s. His SOLID ideas are language-agnostic.
Design Patterns by the Gang of Four. One reference book you will always need. It gives great detail on how to structure your code using OO design.
http://en.wikipedia.org/wiki/Design_Patterns
I would definitely recommend the "Head First Design Patterns" book. My suggestion is to read through that book atleast once. And once you get a feel of design patterns, use the "Gang of Four Design Patterns" book for quick reference/refresh.
And here are a few links from my bookmarks:
http://sourcemaking.com/design-patterns-and-tips
http://www.dofactory.com/Patterns/Patterns.aspx
Hope it helps.
You will learn this best on a University course, or atleast a good one. You don't have to spend 2 years out to do this - if you can afford £400 - $500 I'd recommend this one.
It teaches you about state, and the other 4 concepts you can read about in a badly expressed way on wikipedia. I'm not convinced you will learn it properly from free resources online, I'd guess you'll just get patchy information.
You can be extremely brainy but the information out there isn't going to be that high calibre for a reason - the brightest minds in software pay for their university courses, lectures, assignments and exams, not just read it on the internet.
For analysis try the M256 course, which is about Object Oriented software development, UML and system design. It sounds dull but contains a lot of background information that you probably will never use but will want to know anyway.
Related
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 5 years ago.
Improve this question
Having worked for a couple of years in software development, I grew wondering how to effectively communicate at work as of nitty gritty details of UX, functionality changes, error reporting system, and so on.
I have worked for two small companies here in South Korea and found out communication is done only orally from the start to the end, and never had any habit of software documentation.
I think it’s very odd because meticulous planning and effective software management cannot be done with spoken communication only.
(Although, I think in some sense, it may be justified if a company is not big enough to handle the extra workload.)
So, recently, I am genuinely interested in written communication for software, trying to rekindle a little bit knowledge of software engineering that I learned at college.
I’m trying to teach myself how to visualise my work and practice documentation on my own in practical level.
So, my question would be
Do you know any free graphic tools that can help me draw diagrams or UML, or etc?
Also, It will be appreciated if you could talk about how you document your app for future refactoring and better management.
Thank you.
Also, It will be appreciated if you could talk about how you document your app for future refactoring and better management.
I think you need to read about Agile software development.
Manifesto for Agile Software Development
Make attention on the next point:
Working software over comprehensive documentation
In your situation this can be explained as software writed in "clean" and understandable way with suits of unit and acceptance tests will be more effective then writing static documentation and UML diagrams.
I found UML diagrams are good for designing components in the beginning(but usually had used white boards). Then all diagrams was thrown away after all needed unit, acceptance tests was created.
Regular code reviews are good dynamic tool for sharing best practices, code styles or other information about developing software. So while you sharing knowledge about your software between members regularly, information will stay up-to-date inside team.
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 8 years ago.
Improve this question
I'm looking for a book in the vein of Eloquent Ruby which, while not being targeted at the ruby beginner, gives a great overview of what 'grown up' idiomatic ruby code looks like, and gives great examples of how people might use the powers of the language. I found that the book almost perfectly mirrored what the experienced real world rubyists were writing.
I've settled quite comfortably now into obj-c, but I'd love to read a book like this that would take me from competent to enlightened. Are there any books/resources that might achieve this?
Take a look at this book: Programming in Objective-C
I only have read some sections from it, but I think it mets your requirements, has a lot of helpful code and easy to follow tutorials and it's targeted to beginners and experienced programmers. As you can confirm in the book description:
The book makes no assumptions about prior experience with object-oriented programming languages or with the C language (which Objective-C is based upon). Because of this, both beginners and experienced programmers alike can use this book to quickly and effectively learn the fundamentals of Objective-C. Readers can also learn the concepts of object-oriented programming without having to first learn all of the intricacies of the underlying procedural language (C).
Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 7 years ago.
Improve this question
For quiet sometime now I have been working on improving my algo skills because its a requirement to clear interviews in companies like google, amazon etc. But recently I came across questions on object oriented programming concepts being asked in amazon interviews. I being a programmer in C doesn't know much about oops. Any sort of help like good books, links to improve these skills will be greatly appreciated. Thanks in advance.
I started with the first edition of Tim Budd's "An Introduction to
Object-Oriented Programming". It was language agnostic, so I learned the concepts, not the implementations.
The third edition is now out.
Once you have a grip on the OO concepts I would read some of the basic OO principles outlined by Robert Martin:
http://butunclebob.com/ArticleS.UncleBob.PrinciplesOfOod
These principles really give Object Orientation a purpose and I bet would be excellent for any interview for a developer position.
Read the GoF to start to truly understand design pattern solutions in OOP.
I suggest "Head first" series for beginners.
1. Head first - OOAD
2. Head first - design patterns.
Once you feel you are comfortable with the concepts, you can read Gang of four book on Design patterns & OOAD
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 4 years ago.
Improve this question
What websites (not books) document designs (UML or otherwise) for software applications?
Building architects have many resources available for inspiration and construction. I do not seek resources on constructing software (such as Meyer's Object-Oriented Software Construction), but rather examples of designs for software components or class diagrams that can be used as a starting point for developing an applcation.
Example applications might include:
Game System
Word Processor
User Interface
Telephony Call Control
Clinic Scheduling
Notification System
Incident Management
Network Monitoring
Restaurant Catering
Dispatching (Taxi, Police)
Selling Vacation Packages
The Design Patterns book is a good start, but a bit too low level.
Grady Booch has a great site for just this thing at
http://www.handbookofsoftwarearchitecture.com/index.jsp?page=Main
But you do have to register to look at the diagrams.
Do you mean things like Microsoft's Patterns and Practices?
For simple explanations, sample codes and use cases of common software design patterns, you can check out http://sourcemaking.com/design_patterns. They are generally aimed at solving common problems and can, in fact, be considered as re-usable architectures in software development.
For information related to domain-specific systems, such as games, there can be other domain-specific problems that have been addressed in different architectures, such as some of the links you have provided. Finding a single source which can list all this information in a unified architecture may not be possible, at best. Generic design patterns, such as those from the Gang of Four, is a better start for this reason, I believe.
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 5 years ago.
Improve this question
A lot of you have starting to write programs since college or even earlier.
When you were on university the level of professionalism increased.
If you have to write an article about your software application how do you do it? I'm not talking about a documentation or help manual. I'm talking about an article/paper for academia world. Do you have any idea where can I find those type of articles for free?
This is also a programmer job, even we like to do it or not.
Here's one I made (much) earlier.
Abstract:
This paper presents details of the
Safety Argument Manager (SAM) a PC
based tool to support safety case
construction. SAM is novel in that it
stresses total system safety and is
designed to support an integrated
process for design and assessment. SAM
provides facilities for the
construction of high level safety
arguments and for building up complete
and consistent supporting evidence. In
this paper we focus on the achievement
of high quality supporting evidence,
by describing SAM's facilities for
integrated modeling and safety
assessment. We also illustrate the use
of SAM with a car braking system
example.
What it does, why it's novel, how it does it at a high level, small concrete example shown end-to-end.
Usually papers are rarely about software itself but rather about concepts, ideas and algorithms. Those are explored through software and the authors may give specific examples how they implemented those in their software but most papers are not specifically about a software application itself as those usually have very little valuable content.
There are only few of such papers I've come across so far:
SPRNG: a scalable library for pseudorandom number generation.
Presto: An Experimental Architecture for Fluid Interactive Document Spaces.
Other papers may follow which then concentrate on how specific optimizations or changes were implemented and also new ideas. But I think in those areas real innovation is rare and there is much more text than actual content.
Google Scholar is exceptionally useful for finding freely available academic publications, particularly in the CS/software world.
While many peer-reviewed journals hide things behind paywalls, academics have a tendency to publish working versions or drafts on their personal websites and such. You can find these using Google Scholar (by clicking the "See all X versions" link).