aspose file tools*
The moose likes Meaningless Drivel and the fly likes Programming skills are not enough Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Other » Meaningless Drivel
Bookmark "Programming skills are not enough" Watch "Programming skills are not enough" New topic
Author

Programming skills are not enough

Yahya Elyasse
Ranch Hand

Joined: Jul 07, 2005
Posts: 510

Hi,
I've never been convinced of computer science being a scientific discipline on its own. i always thought programming is only a mean to achieve another goal or solve another problem in another scientific discipline.
Learning programming languages and development tools is not enough on its own. you will need to specialize or study another scientific discipline where you would apply your programming and development skills.
do you agree with this concept? and if you do; what scientific discipline would you choose to study beside computer science if you were given the choice?
Jayesh A Lalwani
Bartender

Joined: Jan 17, 2008
Posts: 2431
    
  28

Yes, most programmers end up building expertise in domains other than programming as they progress through the career. This is why, in many fields, programmers with good domain knowledge might earn a lot more. Think of it this way:- A programmer is somewhat of a translator. S/he converts from the needs expressed in a language that business users speak in to a language that the compiler speaks in. ( i know I know it's more than that). The main differrence is:- Translators start off translating to/from a foreign language to their native language. Programmers, OTH, have to translate to/from concepts in 2 alien languages. Oh yeah, both languages might appear to be close to English, but how ideas are represented in the business language is much differrent than how ideas are represented in the compiler's language.

Also, translators start off understanding the grammar and the vocubalary of the languages, and so it is with the programmer. First you start understanding the semantics of the computing language and the API. ALso, you start learning the business jargon. As translators progress through their career, they start understanding the "culture" that uses the alien language; they start understanding the people and the customs and the history. As they get deeper and deeper into the culture, they become better and better translators. They start translating more accurately, and efficiently. So it is so with the programmer, except again, you have to understand 2 alien cultures. You have to understand the business culture. You have to understand how the business works, and how differrent things are related. Also, you have to understand at a deep level how computers work. Once you get a deep understanding of how computing works, and the business works, you are able to design bigger and better systems

IMO, traditional Computer Science colleges do a poor job of teaching students how to understand business-ese. However, they do a good job of teaching you how to teach yourself. As a programmer, you are constantly learning new things; new technologies, new parts of the business, new rules in the business. Everything is in flux, and you are like a surfer who has to constantly react to the turbulence under him just to keep standing straight. It sure is a ride.
Yahya Elyasse
Ranch Hand

Joined: Jul 07, 2005
Posts: 510

@jayesh,
It's the first time i come across the 'Translation' metaphor for programming activity. But it makes some sense. I did realized it from very early in my college days. I realized that CS is not a pure discipline on its own and has to be combined by another business domain speciality. One needs to pick one of these business domains and study it profondly to build a career not as a specialist of the domain but as a developer who applies the domain concepts into computer applications.
I wonder what domain business should i concentrate on these times ? there seems to be too much of them and choosing is a matter of taste ect..
Jayesh A Lalwani
Bartender

Joined: Jan 17, 2008
Posts: 2431
    
  28

If you are new graduate, I would reccommend that you

a) Don't limit yourself to any particular domain.
b) Be open to learn. Be open to learning how to learn. As a programmer, you never stop learning, you are always a student. Even if you build domain knowledge, technology changes so fast that you are constantly learning new things. The best you can do right now is acclimate yourself to learning new things. The brain is a infinitely flexible organ. The more you do something, the better it becomes at it. The more you learn, the better you get at learning

I've been programming professionally for 17 years. In this time, I've worked in companies that are in the business of a) providing stock trading tools, b) manufacturing consumer goods c) healthcare, d) selling advertisements and e) finance. All these domains have nothing to do with each other, but when I learn a domain, I get better at learning the next. Heck, I find that just browsing through Wikipedia or trying to knit (very very badly), or learning jujitsu(which I'm surprisingly decent at) makes me a better programmer. Barrage yourself with new information, new skills, new challenges.
Paul Anilprem
Enthuware Software Support
Ranch Hand

Joined: Sep 23, 2000
Posts: 3324
    
    8
Yahya Elyasse wrote:@jayesh,
I realized that CS is not a pure discipline on its own and has to be combined by another business domain speciality.

Tell that to Knuth, Aho, Ulman, Horowitz, ...endless list of names follows

Seriously though, different people like different things. The world is full of opportunities to do different things as well. So some people use CS to solve business problems and some people use CS to solve CS problems. Both can make money if they are at the top of their game.


Enthuware - Best Mock Exams and Questions for Oracle/Sun Java Certifications
Quality Guaranteed - Pass or Full Refund!
Jayesh A Lalwani
Bartender

Joined: Jan 17, 2008
Posts: 2431
    
  28

Yes, I think it's appropriate to bring up the distinction between Computer Science and Software Engineering. The distinction is very blurred in our profession. However, traditionally, a scientist is someone who studies something and tries to find new knowledge. An Engineer is someone who applies existing knowledge to build something. Now, the thing is traditionally, scientists have been people who studied things in nature. A thing exists; a scientist tries to understand what makes it tick. COmputer Science , OTH is a study of something artificial which blurs the line. Computers don't exist in the wild. Engineers create computers, and Computer Scientists try to find new ways to use them, and then engineers try to apply their findings. So, the lines are very blurred.
chris webster
Bartender

Joined: Mar 01, 2009
Posts: 1846
    
  16

Interesting to see Jayesh comparing programming to translation, as that's exactly how I've always thought of it. My first degree was in languages and I'm a qualified translator, so I guess it's a natural metaphor in my case. You can be a fine programmer (or SW engineer) / translator (linguist) without being an expert in CS or linguistics, but you'll probably find that learning at least some CS/linguistics will make you a better programmer/translator. At the very least it will give you greater insight into what you're doing all day, which has to be a good thing.


No more Blub for me, thank you, Vicar.
Yahya Elyasse
Ranch Hand

Joined: Jul 07, 2005
Posts: 510

Interesting discussion.
BTW, I recommend this interesting book : Domain-Driven Design: Tackling Complexity in the Heart of Software By: Eric Evans . this book intoduces the important concept of domain driven Design which teach you how to Think as both a domain business practitioner and a SW programmer.
J. Kevin Robbins
Bartender

Joined: Dec 16, 2010
Posts: 1038
    
  13

So how would you classify artificial intelligence, robotics, or brain-computer interfaces (BCIs)? Are these business domains, computer science, or software engineering? As said previously, the lines are rather blurry.

I'm not trying to be contrary, I'm really curious. I don't have the advantage of a CS degree. I'm largely self-taught with a simple two year degree in programming so I see things a little different that those of you with CS or engineering degrees.


"The good news about computers is that they do what you tell them to do. The bad news is that they do what you tell them to do." -- Ted Nelson
chris webster
Bartender

Joined: Mar 01, 2009
Posts: 1846
    
  16

Jk Robbins wrote:So how would you classify artificial intelligence, robotics, or brain-computer interfaces (BCIs)? Are these business domains, computer science, or software engineering? As said previously, the lines are rather blurry.

Good point. I'm not a CS grad either, but if we're still looking at analogies then I guess it's like the spectrum of "sciences" such as physics/chemistry/materials science/biochemistry etc feeding first into various engineering disciplines and then into commercial applications of particular techniques and principles. So people are researching AI and robotics in computer science, while others are applying that knowledge in software engineering both experimentally and in commercial applications in business. Like you say, the lines are blurry - but then we don't need to rigidly define these boundaries either.
Jayesh A Lalwani
Bartender

Joined: Jan 17, 2008
Posts: 2431
    
  28

I would say artificial intelligence is a science that feeds into the engineering of robotics. RObotics is multi-disciplinary, as are many engineering fields. For example, aerospace engineering (basically design of airplanes) is driven by aeronautical science(basically, the science of making things fly), but it's a little more than that. You need to know a little bit of materials science. You need to know a little bit of electronics maybe quite a bit of computers now days, etc, etc.

Similarly robotics employs quite a few scientific fields. Not all robots are intelligent. A lot of industrial robots are more or less highly sophisticated pre-programmed machines. They are quite awesome, but don't have machine learning built into them. A lot of industrial design goes into them, (which itself employs a lot of scientific fields), along with electronics, computer design and computer programming.
Yahya Elyasse
Ranch Hand

Joined: Jul 07, 2005
Posts: 510

Yes I can only agree that the programming discipline is still not very Well defined. Specialists are still struggling to define it and categorize it in some well known discipline category. I remember i wrote a blog post about this subject a while ago: Is Software Engineering Engineering?
and there were several interesting articles that tried tackling this subject especialy in http://cacm.acm.org. i couldn't locate them but if you search this magazine you will find several articles talking about the 'blurry' nature of programming and computer science.
Ulf Dittmer
Marshal

Joined: Mar 22, 2005
Posts: 42599
    
  65
Yup, you also need good looks. And a towel.


Ping & DNS - my free Android networking tools app
Frank Silbermann
Ranch Hand

Joined: Jun 06, 2002
Posts: 1389
Programming is like the design and enhancement of manufacturing facilities. The programming language is like the machinery catalog and the domain is like the product the factory will produce. Execution speed is like operational cost. Program size is like the cost of construction materials and square footage. The program's logging and management APIs and features are like the factory's ease of management. The program's design quality is like the factory's flexibility to adapt to changes in the product's specifications, ease of doing repairs, and the ease of replacing machinery with newer models as the old machines become obsolete and no longer have replacement parts available.

The program's ease of use is comparable to the factory workers' quality-of-life while on-the-job.
chris webster
Bartender

Joined: Mar 01, 2009
Posts: 1846
    
  16

Ulf Dittmer wrote:Yup, you also need good looks. And a towel.

hmmm, well I can probably find a towel, so one out of two isn't bad...
Jayesh A Lalwani
Bartender

Joined: Jan 17, 2008
Posts: 2431
    
  28

I could probably cover my face with a towel
Yahya Elyasse
Ranch Hand

Joined: Jul 07, 2005
Posts: 510

Ulf Dittmer wrote:Yup, you also need good looks. And a towel.


if you mean by "good looks" that appearance is important for a software developer; i think i can understand what you mean and do agree.
Ulf Dittmer
Marshal

Joined: Mar 22, 2005
Posts: 42599
    
  65
Nope, you missed the sarcasm.
Yahya Elyasse
Ranch Hand

Joined: Jul 07, 2005
Posts: 510

Ulf Dittmer wrote:Nope, you missed the sarcasm.


ok what was the sarcasm about?
Martin Vajsar
Sheriff

Joined: Aug 22, 2010
Posts: 3611
    
  60

Yahya Elyasse wrote:ok what was the sarcasm about?

The answer, of course, is forty-two.

(Unless I'm seriously mistaken, Ulf is referring to the Hitchhiker's Guide to the Galaxy, which elaborates extensively on the usefulness of towels in more or less any situation. And on the importance of the number 42.)
Yahya Elyasse
Ranch Hand

Joined: Jul 07, 2005
Posts: 510

Martin Vajsar wrote:
Yahya Elyasse wrote:ok what was the sarcasm about?

The answer, of course, is forty-two.

(Unless I'm seriously mistaken, Ulf is referring to the Hitchhiker's Guide to the Galaxy, which elaborates extensively on the usefulness of towels in more or less any situation. And on the importance of the number 42.)

thanks i didn't knew about this famous 42 magical number untill you have pointed it. i have read a book about the mysterious Constants of the universe. but i never heard before about the mysterious 42 number.
Seetharaman Venkatasamy
Ranch Hand

Joined: Jan 28, 2008
Posts: 5575

Jayesh A Lalwani wrote:I could probably cover my face with a towel

we born naked .. towel wont help ;)
Seetharaman Venkatasamy
Ranch Hand

Joined: Jan 28, 2008
Posts: 5575

Ulf Dittmer wrote:Nope, you missed the sarcasm.

me?
Shannon Graham
Greenhorn

Joined: Mar 11, 2013
Posts: 14
Yahya Elyasse wrote:
Martin Vajsar wrote:
Yahya Elyasse wrote:ok what was the sarcasm about?

The answer, of course, is forty-two.

(Unless I'm seriously mistaken, Ulf is referring to the Hitchhiker's Guide to the Galaxy, which elaborates extensively on the usefulness of towels in more or less any situation. And on the importance of the number 42.)

thanks i didn't knew about this famous 42 magical number untill you have pointed it. i have read a book about the mysterious Constants of the universe. but i never heard before about the mysterious 42 number.


You could read the Hitchhikers Guide to the Galaxy, which is an excellent book. But you're also safe assuming that every time someone on the internet mentions towels or the number 42, says "thanks for all the fish" or "don't panic", or something really obscure that somehow makes sense if you read it in a British accent, they're talking about that book.
Jeff Verdegan
Bartender

Joined: Jan 03, 2004
Posts: 6109
    
    6

Yahya Elyasse wrote:Hi,
I've never been convinced of computer science being a scientific discipline on its own. i always thought programming is only a mean to achieve another goal or solve another problem in another scientific discipline.
Learning programming languages and development tools is not enough on its own.


Although my degree is in EE, I took enough CS courses that I was only one shy of completing the requirements for a CS degree as well. Not one single course I took was about learning a language or development tool. I don't think they even taught those courses. What they did teach was things like data structures & algorithms, compiler, networks, etc. There was some pure math there, and a fair amount of what I would consider applied science. I don't know if that makes CS a "scientific discipline on its own," but it's a far cry from "learning programming languages and development tools."

you will need to specialize or study another scientific discipline where you would apply your programming and development skills.
do you agree with this concept?


My tasks and employer since graduating college have included: Developing menu planning software for a hospital; writing equity trading software for a very large investment firm; writing "back of house" software for one of the largest banks in the world; developing a consumer website for a line of frozen dinners; developing defect reporting software for a large pharmaceutical company; developing an e-commerce site for a paint company; working on compliance software for a company that specialized in that field; developing network monitoring and management software; developing a smart phone voice mail app and the back-end that supports it.

I never studied any of those disciplines other than on the job. So no, I don't agree.

That's not to say that additional study in some domain or other isn't valuable. But it's not the only path to success. You can be an effective developer and have a rewarding career without any specialized study in any particular scientific or business domain. In the current economy though, if you're just coming out of school and don't have real-world experience, I can see how extra study in your domain of choice could give you an advantage over other entry-level candidates.

 
wood burning stoves
 
subject: Programming skills are not enough