wood burning stoves*
The moose likes Meaningless Drivel and the fly likes Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of Spring in Action this week in the Spring forum!
JavaRanch » Java Forums » Other » Meaningless Drivel
Bookmark ""What I tell all new programmers"" Watch ""What I tell all new programmers"" New topic
Author

"What I tell all new programmers"

Jesper de Jong
Java Cowboy
Saloon Keeper

Joined: Aug 16, 2005
Posts: 14269
    
  21

Found this: What I tell all new programmers

I agree with most of it, and a lot of it is very regocognizable when you're a programmer.

But there's this one thing I don't fully agree with:
You are a wizard harry. Programming is basically magic. Think about it - we study hard and pore over our books of lore (the computer + internet), to make spells (programs). Wizards can teach other wizards how to cast their magic.

It can look like magic for non-programmers, but it really is not magic. If you're programming by writing magical statements that you don't fully understand what they do, then you're doing cargo cult programming. Programming is not magic, it's logic. Every statement in a program has an exact purpose.


Java Beginners FAQ - JavaRanch SCJP FAQ - The Java Tutorial - Java SE 8 API documentation
fred rosenberger
lowercase baba
Bartender

Joined: Oct 02, 2003
Posts: 11412
    
  16

Arthur C. Clarke wrote:Any sufficiently advanced technology is indistinguishable from magic.


There are only two hard things in computer science: cache invalidation, naming things, and off-by-one errors
Henry Wong
author
Sheriff

Joined: Sep 28, 2004
Posts: 18896
    
  40

Jesper de Jong wrote:
But there's this one thing I don't fully agree with:
You are a wizard harry. Programming is basically magic. Think about it - we study hard and pore over our books of lore (the computer + internet), to make spells (programs). Wizards can teach other wizards how to cast their magic.

It can look like magic for non-programmers, but it really is not magic. If you're programming by writing magical statements that you don't fully understand what they do, then you're doing cargo cult programming. Programming is not magic, it's logic. Every statement in a program has an exact purpose.


I think that both of you are saying the same thing -- just from a different definition of "magic". To you "magic" is something that you don't understand. And computer programming is something that you do, and hence, logical (and not magic). To Harry, well, he's a sorcerer. He does magic. He understands magic. Magic is logic. Magic is the skill -- and not the same meaning used by muggles...

Henry


Books: Java Threads, 3rd Edition, Jini in a Nutshell, and Java Gems (contributor)
Greg Charles
Sheriff

Joined: Oct 01, 2001
Posts: 2854
    
  11

Well, working with computers involves abstracting away certain details. Users abstract more than programers, but even we abstract away some of the details at least part of the time and just let computers work their magic under our guidance. However, I'd say Harry and even Hermione, are more analogous to computer users than programers. Do they know why saying wingardium leviosa while making certain gestures with their wands will make things float? It seems to me that people in the history of the Potter-verse saw magic out there and devised a UI to access it. Maybe they could have made it a little more user friendly ... it takes years of study to learn even for those with natural talent, and why the discrimination against muggles? That's just a bad design! In any case, those mystery men/women/creatures were the programers, not Harry.
Ryan McGuire
Ranch Hand

Joined: Feb 18, 2005
Posts: 1010
    
    3
I'm not so sure that the last point is as universal a truth as most of the others.

When you're stuck, write your program on paper. I'm serious. It's magic.


Back in my college I did write some code on paper "for counter=1 to 10...", but that was only a way to get some initial thoughts recorded. Writing out code on paper has never helped me get unstuck any more than typeing the code into a file. Oh sure... I've used any number of circles-and-arrows diagrams to help me work out problems. ...but not just plain code on paper.
Jayesh A Lalwani
Bartender

Joined: Jan 17, 2008
Posts: 2402
    
  28

Thanks for posting that. Jesper. That blog post seems like it's a summary of every rant/advise I have ever posted on the internet. I completely agree with most of it.
Jan de Boer
Ranch Hand

Joined: Dec 10, 2010
Posts: 422
    
    1
Well some other programmers can make their code that tangled and written from left to right instead of from above to below, it is unreadable magic. But that would be another issue.
Partheban Udayakumar
Ranch Hand

Joined: Jul 04, 2013
Posts: 265

Hi all

Just today I found this post and I saw the link provided by Jesper. I think
Programming is really hard


is not really a good way to start with it. I too like Jesper accept all the points except the magic part. I didn't think programming was hard when I started (ofcourse its just one year) but when do something we like, it isn't hard. New programmers need encouragment. In my opinion, people like the author of the blog should be encouraging. If a programmer of 20+ years of experience says "Programming is really hard" at the beginning of his documentation, how could you expect people to take up programming?


"Any fool can write code that a computer can understand. Good programmers write code that humans can understand."
--- Martin Fowler
Jayesh A Lalwani
Bartender

Joined: Jan 17, 2008
Posts: 2402
    
  28

When experienced programmers say programming is easy, beginning programmers who find it hard to learn start blaming themselves, and give up. Beginners who find it easy to learn continue learning.

When experienced programmers say programming is hard, beginners who find it hard continue trying their best. Beginners who find it easy continue learning


The thing is "programming is hard" is true. If it was easy, everyone would do it, and then you wouldn't be paid the big bucks. Only 0.3% of the world can do it. That by it's very definition is something that is hard. Yes, that doesn't mean it's equally hard for everyone. Some people do find it easy. The statement "programming is hard" is an acknowledgement that it's a niche skill.
Henry Wong
author
Sheriff

Joined: Sep 28, 2004
Posts: 18896
    
  40

Jayesh A Lalwani wrote:
The thing is "programming is hard" is true. If it was easy, everyone would do it, and then you wouldn't be paid the big bucks. Only 0.3% of the world can do it. That by it's very definition is something that is hard. Yes, that doesn't mean it's equally hard for everyone. Some people do find it easy. The statement "programming is hard" is an acknowledgement that it's a niche skill.


Also, I noticed that it has little to do with intelligence. Certain people are just not wired for it (and by certain people, I am thinking that it may be the majority). Some of the smartest people that I know can't do it -- and it isn't even due to the the hard stuff. For example, "A = A + 1" doesn't make sense to them. Only crazy people like us believe that there is a value of A that will satisfy that expression ...

Henry
Randall Twede
Ranch Hand

Joined: Oct 21, 2000
Posts: 4347
    
    2

I agree with jayesh....it is hard for most people. 0.3%

for me it is easy, but I have done it for a long time.

there might be something to the sexual aspect here too. women were about 0.3% in my graduating class(ok I exaggerate a little).


SCJP
Visit my download page
Randall Twede
Ranch Hand

Joined: Oct 21, 2000
Posts: 4347
    
    2

"A = A + 1" doesn't make sense to them. Only crazy people like us believe that there is a value of A that will satisfy that expression ...


I hear you henry. I would try for days at least before I gave up
Guillermo Ishi
Ranch Hand

Joined: Jul 28, 2014
Posts: 115
    
    1
I worked with a hardware engineer for several years who would intercede with our boss sometimes...umm...on my behalf. He would tell the boss "It's software, we can do anything". I can see the humor to a hardware guy who's bound by physical laws... And I did fix their show-stopping hardware errors so many times with software. In return they made me feel like a superhero.

J. Kevin Robbins
Bartender

Joined: Dec 16, 2010
Posts: 1001
    
  13

Randall Twede wrote:there might be something to the sexual aspect here too. women were about 0.3% in my graduating class(ok I exaggerate a little).

I'm going to tread into dangerous water here for a moment. This is going to sound sexist but I don't mean it to be negative.

I used to think that men in general made better programmers because I believed that programming was a detail-oriented, analytical, and logical activity (i.e. a left-brained activity if you believed that left-brained/right-brained stuff). I reasoned (?) that women were less suited to it because I viewed women as being more creative and imaginative, and more big-picture oriented (left-brained). We typically see fewer women in the sciences and mathematics for instance. But now that I've been a professional programmer for several years, I've found that some of the best programmers I've worked with are women. At first I had trouble resolving this with my preconceived ideas, but I've come to realize that programming is actually a very creative process. It's not just logic and details. Good programming requires the ability to see the big picture and thing creatively. I've developed a lot of respect for the female programmers that I've worked with the last few years and realized that I need to learn from them and look at things with a different perspective. Now we need to figure out how to get more women interested in the field. I have a 7 year old granddaughter and I'd love to figure out how to get her interested in it.

Again, you may see this as sexist, but please understand that I grew up and worked in an environment where men wrote the code and women entered it on keypunch machines. That's where my early impressions were formed. My mind has since been opened.


"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
Jesper de Jong
Java Cowboy
Saloon Keeper

Joined: Aug 16, 2005
Posts: 14269
    
  21

J. Kevin Robbins wrote:... (i.e. a left-brained activity if you believed that left-brained/right-brained stuff). I reasoned (?) that women were less suited to it because I viewed women as being more creative and imaginative, and more big-picture oriented (left-brained).

The whole left-brained vs. right-brained idea is a very common belief that many people have, but in reality it's not supported by science: Left Brain vs. Right: It's a Myth, Research Finds
J. Kevin Robbins
Bartender

Joined: Dec 16, 2010
Posts: 1001
    
  13

Yeah, I know it's been dis-proven, but it's still a common meme for comparing the different types of thinking, such as artistic versus analytic, that's why I used it. It's so ingrained; we need a new way to describe or quantify the way people think in different ways. Under the old mythical system, I would be considered very left-brained. I'm very analytical but not creative or imaginative at all. If someone says "build me a web page", I have a terrible time with that. I can't design the layout, colors, images and all that. But give me a sketch of what you want, tell me the color scheme you want and what images you want to use, and now I can do something with it. I need specifics. I can't work with generalizations.
Chris Barrett
Ranch Hand

Joined: Dec 05, 2013
Posts: 216
    
  10

J. Kevin Robbins wrote:Again, you may see this as sexist, but please understand that I grew up and worked in an environment where men wrote the code and women entered it on keypunch machines. That's where my early impressions were formed. My mind has since been opened.

Thank you for sharing your personal story of self-growth. While, the thoughts you expressed would be considered sexist by today's standards, if you programmed in the '70s (or did just about anything in male dominated roles in the '70s), your attitude would have been the norm. Therefore, in the context of era, I don't consider your thoughts sexist. Understanding that those attitudes are now wrong is awesome! Reading about "GamerGate" on the weekend, I'm sadden to see there are many in the computer industry (both programmers and players) that still believe it's not the place for women...

Regarding getting your seven year old grand-daughter involved, I have a six and four year old, so I know how hard it can be. I would be curious to hear how other moms and dads in the forums do it.
For me, I try to get them excited about making simple games for them to play. This summer, as the oldest learned to add up to 30 in kindergarten, we made a little math game. They help with the functional and non-functional requirements:
  • Must have their names and picture on the screen
  • Must show a picture of a heart when they "win", and a picture of a frog when they "lose"
  • The sum must never exceed 30
  • After it was done, the oldest did the math while the youngest did the typing.

    You might also want to check out this new board game designed to encourage youngsters to learn programming.


    OCAJP7 [86%] | Personal Blog
    J. Kevin Robbins
    Bartender

    Joined: Dec 16, 2010
    Posts: 1001
        
      13

    Chris R Barrett wrote:While, the thoughts you expressed would be considered sexist by today's standards, if you programmed in the '70s (or did just about anything in male dominated roles in the '70s), your attitude would have been the norm. Therefore, in the context of era, I don't consider your thoughts sexist. Understanding that those attitudes are now wrong is awesome!


    Thanks. It would have been in the late sixties, early seventies, my mom was the IT director for a school system. She wasn't a programmer, she was the boss. I often went to work with her in the summer and spent hours banging on a keypunch machine just making designs on the cards. I was probably eight or nine years old. All the programmers and "system analysts" (is that still a job these days?) were men. Around 1981 I became a field service engineer for customers all over Michigan, and again, all the programmers were men. I didn't encounter my first female programmer until about 10 years ago. I am ashamed and humbled to admit that I was astonished at her skills. It just didn't fit my world view. Never mind that the first ever programmer was a woman, Grace Hopper. I took me a while to realize that I was being narrow minded about both the way men and women can think, and the variety of skills required to be a good programmer. I had created too many pigeon holes. These days, my co-worker is a woman and RPG programmer. I am struggling to learn RPG from her while she learns Java from me. It's a fun arrangement, but I don't think I'll ever understand this iSeries and RPG the way she does.
    J. Kevin Robbins
    Bartender

    Joined: Dec 16, 2010
    Posts: 1001
        
      13

    btw, thanks for the tip on Robot Turtles. That will go on the Christmas list for this year.
    Jesper de Jong
    Java Cowboy
    Saloon Keeper

    Joined: Aug 16, 2005
    Posts: 14269
        
      21

    J. Kevin Robbins wrote:Yeah, I know it's been dis-proven, but it's still a common meme for comparing the different types of thinking, such as artistic versus analytic, that's why I used it. It's so ingrained; we need a new way to describe or quantify the way people think in different ways.

    I dislike these kind of categories in general - I don't like to be labeled in any way like that. Labels are oversimplifications, nobody is purely this or the other. Before you know it, people put some kind of label on you and decide based on the stereotypes associated with that label what and who you are, without really knowing you.
    Ryan McGuire
    Ranch Hand

    Joined: Feb 18, 2005
    Posts: 1010
        
        3
    Jesper de Jong wrote:I dislike these kind of categories in general - I don't like to be labeled in any way like that. Labels are oversimplifications, nobody is purely this or the other. Before you know it, people put some kind of label on you and decide based on the stereotypes associated with that label what and who you are, without really knowing you.


    Even worse is when the person to whom the label has been applied actually believes them. If your parents told you year after year that girls aren't good at math and boys can't do artistic things, you would most likely believe it for at least a few years.
     
    I agree. Here's the link: http://aspose.com/file-tools
     
    subject: "What I tell all new programmers"