Win a copy of Re-engineering Legacy Software this week in the Refactoring forum
or Docker in Action in the Cloud/Virtualization forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

"What I tell all new programmers"

 
Jesper de Jong
Java Cowboy
Saloon Keeper
Posts: 15208
36
Android IntelliJ IDE Java Scala Spring
  • Likes 1
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
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.
 
fred rosenberger
lowercase baba
Bartender
Posts: 12087
29
Chrome Java Linux
  • Likes 6
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Arthur C. Clarke wrote:Any sufficiently advanced technology is indistinguishable from magic.
 
Henry Wong
author
Marshal
Pie
Posts: 20907
76
C++ Chrome Eclipse IDE Firefox Browser Java jQuery Linux VI Editor Windows
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
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
 
Greg Charles
Sheriff
Posts: 2984
12
Firefox Browser IntelliJ IDE Java Mac Ruby
  • Likes 2
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
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
Posts: 1055
4
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
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
Rancher
Posts: 2756
32
Eclipse IDE Spring Tomcat Server
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
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
Posts: 570
3
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
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
Posts: 481
AngularJS Java Spring
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
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?
 
Jayesh A Lalwani
Rancher
Posts: 2756
32
Eclipse IDE Spring Tomcat Server
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
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
Marshal
Pie
Posts: 20907
76
C++ Chrome Eclipse IDE Firefox Browser Java jQuery Linux VI Editor Windows
  • Likes 2
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
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
Posts: 4363
2
Java
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
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).
 
Randall Twede
Ranch Hand
Posts: 4363
2
Java
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
"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
Posts: 789
C++ Linux Python
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
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
Posts: 1728
19
Chrome Firefox Browser jQuery Linux MySQL Database Netbeans IDE
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
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.
 
Jesper de Jong
Java Cowboy
Saloon Keeper
Posts: 15208
36
Android IntelliJ IDE Java Scala Spring
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
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
Posts: 1728
19
Chrome Firefox Browser jQuery Linux MySQL Database Netbeans IDE
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
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
Bartender
Posts: 296
18
Eclipse IDE Firefox Browser
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
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.
     
    J. Kevin Robbins
    Bartender
    Posts: 1728
    19
    Chrome Firefox Browser jQuery Linux MySQL Database Netbeans IDE
    • Likes 1
    • Mark post as helpful
    • send pies
    • Quote
    • Report post to moderator
    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
    Posts: 1728
    19
    Chrome Firefox Browser jQuery Linux MySQL Database Netbeans IDE
    • Mark post as helpful
    • send pies
    • Quote
    • Report post to moderator
    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
    Posts: 15208
    36
    Android IntelliJ IDE Java Scala Spring
    • Mark post as helpful
    • send pies
    • Quote
    • Report post to moderator
    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
    Posts: 1055
    4
    • Mark post as helpful
    • send pies
    • Quote
    • Report post to moderator
    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.
     
    • Post Reply
    • Bookmark Topic Watch Topic
    • New Topic