Programming: a Book or Practicing Only?

In summary: OOP program. I think that you'll be a better programmer if you can learn to read and understand code from multiple different paradigms, because that's how you'll be able to find the best solution to the problem at hand.
  • #1
CDTOE
46
0
Hi, Everybody

I'm an electrical engineering student who has been doing Java programming for a while. I have started learning OOP directly from practicing, mostly using youtube tutorials, without getting into theories or concepts before. Lately, I have thought to start reading a book about OOP in an attempt to get a deeper understanding of the concepts behind programming and especially OOP.

I'm not learning OOP and programming, in general, only to contribute to my discipline, but also as a hobby. I have a vision to learn other languages, such as HTML, CSS, php... so on. For this I want to ask, is it really necessary to read a book abut OOP, or any programming paradigm/language, to be a good programmer? or is practicing more important and enough to do well?

Thanks.
 
Technology news on Phys.org
  • #2
Well...I don't know about you, but I had been a programmer for a while BEFORE I wanted to learn OOP...not being a CS major but an EE (me too) I was able to follow OOP examples and write an entire OOP program...but I had the feeling and wasn't really getting, so, I audit an OOP class and realized I REALLY wasn't getting it.

So, I think there are quite a few important concepts you REALLY need to study to fully understand and effectively use OOP...inheritance, encapsulation, etc.

Other than that, as an engineer, I would recommend learning Python...it's got a lot of modules and tools for engineering/scientific work...I have no use for HTML, CSS, PHP...that's web development stuff...

my 2cents
 
  • #3
For me, I didn't need any assistance about changing languages.
The concept is the same everywhere...
 
  • #4
In my opinion, you are unlikely to learn object oriented programming practices simply by writing code. People who do that merely learn the syntax of an object oriented programming language and they continue to write in a procedural programming style. (The fact that you use classes in your program doesn't mean that you are using object oriented programming.)

If you think you are an exception to this, verify it by looking at some heavy duty discussions of object oriented programming on the web. Look for some of Marshall Cline's posts. If you know C++, look at his C++ FAQ book.
 
  • #5
CDTOE said:
Lately, I have thought to start reading a book about OOP in an attempt to get a deeper understanding of the concepts behind programming and especially OOP.

I would recommend going to your university library and reading this
http://dl.acm.org/citation.cfm?id=624721
or perhaps you can find the original on the net somewhere, I tried and failed.

This is a revised version he wrote years later
www.research.att.com/~bs/whatis.pdf
but I think the original was better.

I would read the original several times and think about it until I was confident I really understood it.

He is the C++ guy, but I'm not trying to sell C++. The original was trying to communicate some very fundamental ideas about exactly what object oriented programming was. It was trying to get across the core ideas of what this was and how it had evolved from prior ideas.

At the end of the original article there were a couple of sentences, roughly "and there is still this problem and this problem and this problem with object oriented programming. Nobody today knows what the answer to those problems are, but in ten years someone will probably figure that out." I have always wondered whether someone did and what the answer was.
 
  • #6
CDTOE said:
Hi, Everybody

I'm an electrical engineering student who has been doing Java programming for a while. I have started learning OOP directly from practicing, mostly using youtube tutorials, without getting into theories or concepts before. Lately, I have thought to start reading a book about OOP in an attempt to get a deeper understanding of the concepts behind programming and especially OOP.

I'm not learning OOP and programming, in general, only to contribute to my discipline, but also as a hobby. I have a vision to learn other languages, such as HTML, CSS, php... so on. For this I want to ask, is it really necessary to read a book abut OOP, or any programming paradigm/language, to be a good programmer? or is practicing more important and enough to do well?

Thanks.

Hey CDTOE and welcome to the forums.

I would recommend you do both: read books and write your own code.

The thing is, that if you can learn a lesson from someone else just by reading or hearing their story, you can forgo a lot of the trial and error that they had to go through. Even if this is a little superficial, it still helps you advance to a point that would otherwise take a chunk of your time.

You don't really have to a C++ programmer to program in an OOP kind of style. If you ever look at John Carmacks code, you'll see that he wrote very good code in C that was in the same kind of vein as an object oriented implementation, before he ended up writing things in C++ (which he did for Doom 3).

You can, if you really wanted to, implement most of the stuff in C++ for OOP in C with a lot of meta-data and some clever design, but it's probably easier to just use C++.

In fact if you ever end up getting a repository for a complex platform like a game engine, or something like say Adobe photoshop, or anything with support for complex plugins, scripting interfaces and so on, you will see that the design has tonnes and tonnes of metadata that is used to add all the functionality that makes this possible.

So the main point I'm trying to say is that you can extend one environment to something a lot more rich and flexible by writing your own code to do this, but most people won't want to do this and instead just get something that someone has already created, and also if it is has been tested and is widely used (and some kind of standard).

The benefits for doing it yourself is that you have control over everything including the design and the implementation itself and for highly specific custom applications, you need this.
 

Related to Programming: a Book or Practicing Only?

1. What are the benefits of reading a programming book?

Reading a programming book can provide a comprehensive understanding of programming concepts and principles, introduce new programming languages, and improve problem-solving skills. It can also serve as a reference guide for future programming projects.

2. Is it necessary to practice programming or can just reading a book suffice?

While reading a programming book can provide knowledge and theoretical understanding, it is essential to practice programming to develop practical skills. It is through practice that one can apply the concepts learned from the book and gain hands-on experience.

3. How often should one practice programming?

The frequency of practicing programming can vary depending on individual learning styles and schedules. However, it is recommended to practice regularly, preferably daily, to maintain continuity and improve skills consistently.

4. Are programming books still relevant in today's fast-paced technological world?

Yes, programming books are still relevant and serve as a valuable resource for learning and improving programming skills. While the field of technology is constantly evolving, the fundamental concepts and principles of programming remain the same, making books a reliable source of information.

5. Can practicing programming without referring to a book be beneficial?

Practicing programming without relying on a book can be beneficial as it allows for independent problem-solving and encourages critical thinking. However, using a book as a reference can provide a deeper understanding of complex concepts and offer guidance when facing challenges.

Similar threads

  • Programming and Computer Science
2
Replies
69
Views
4K
  • Programming and Computer Science
2
Replies
49
Views
3K
  • Programming and Computer Science
Replies
15
Views
2K
  • Programming and Computer Science
Replies
1
Views
8K
Replies
40
Views
2K
  • Sticky
  • Programming and Computer Science
Replies
13
Views
4K
  • STEM Academic Advising
Replies
12
Views
1K
  • Programming and Computer Science
Replies
7
Views
1K
  • Programming and Computer Science
Replies
31
Views
3K
  • Programming and Computer Science
Replies
2
Views
2K
Back
Top