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
Related
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 6 years ago.
Improve this question
I wanted to ask little bit generic question about Java API's. I'm new in Java, learning myself and of course I enjoy it while learning. But when it comes to Java API's, to me it's hard to understand even if I know OOP's Concepts. Actually I often confuse while reading JavaDoc's. Agree that there are bunch of information about what class's(interface, enum..) has, what they extend, implements or whatever. Even though I couldn't use them without looking from the internet.
So, what is the best way of learning those API's in general, just give me your followed way while learning Java.
The best way to learn Java is to read articles with examples. It is common approach for newbies and professionals. JavaDocs is dry, too formal and really are often confusing (especially for methods from Stream API with 3+ generic parameters).
The way I did was to read certification books, for OCA and OCP, they start from the very basic, and builds up on the top of that, with examples and exercises.
It is a really nice way to build your core knowledge of the language. With that solidified knowledge you can start reading articles about different subjects in the Java universe ...
Just be patient, code as much as possible, and it will become natural aftar some time.
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 8 years ago.
Improve this question
I recently started looking at programming and have been quite interested in it. The only bad thing is that I don't know how code works, where I can write it, or what languages to take into consideration.
I want to learn how to make applications for the iOS operating system, and i heard Objective C is the language for that. Is Objective C something you would recommend to a beginner?
I just wish I could grasp the concept of programming a little better and get a better understanding because, as of right now, it seems extremely complicated.
As a beginning programmer, I would advise that you'd be better served learning how computers and programs work as a general concept, which will orient your thinking as to how programs are made.
I've heard lots of good things about the Haskell language in this regard, and I would recommend you start here: http://tryhaskell.org
Once you have a good concept of how programs work, and what kind of thinking and organisation is required, then you can move on to languages like C/Objective-C, which would be very frustrating to start on.
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 is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 9 years ago.
Improve this question
We want to implement a model or guideline for our OO designs,. We like Domain-Driven Design. Our specific question is: do you think DDD is still valid right now beyond the pattern design? If so, do other approaches or variants exist that we should evaluate ?
Fundamentally we develop enterprise web and desktop applications using Visual studio (c#).
Thanks in advance
In my opinion, DDD is as pertinent today as ever. The idea that one should strive for an Ubiquitous Language, such that the domain in code is not divorced from the domain as described by the domain experts, will probably remain a good idea for a long time, and it is easier today to focus on the domain first and consider persistence as a "secondary" problem than it used to be. It is also still true that DDD requires an important design effort, and its value is going to be proportional to how complex the domain is.
I have not written any application using the methodology, but I have been reading a lot on Event Sourcing and CQRS lately, and they both seems like a very interesting approach which should fit well with DDD (and are usually advocated by people who are DDD proponents).
I can't find it right now, but there is a video interviews of Eric Evans floating around somewhere on the web,You may be interested in watching this video of Eric Evans, which is a form of retrospective on the methodology a few years after writing the book, and what he would have done differently now.
I think DDD is quite alive (or quite as dead) as before. My opinion is that the "domain" is a hot topic today because of DSLs (Domain-Specific Languages) and MDE (Model-Driven Engineering).
You may want to learn more about a similar "domain-driven" aproach, called DSM - Domain-Specific modeling. In DSM, you can work through patterns but you also define code generators that translate your domain-specific design into working code.
Check the DSM Forum or Wikipedia for more information about DSM.
The two most notable tools right now in this area are MetaEdit+ from MetaCase and AtomWeaver from Isomeris.
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.