• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Ron McLeod
  • Paul Clapham
  • Devaka Cooray
  • Tim Cooke
Sheriffs:
  • Rob Spoor
  • Liutauras Vilda
  • paul wheaton
Saloon Keepers:
  • Tim Holloway
  • Tim Moores
  • Mikalai Zaikin
  • Carey Brown
  • Piet Souris
Bartenders:
  • Stephan van Hulst

The Creative Programmer - Actionable Advice ?

 
Ranch Hand
Posts: 576
2
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Hi,
I like it when I get advice that involves concrete actions that I can take.

The Amazon bullet points of the book mentions "Actionable advice and thinking exercises that will make you a better programmer" .
Can you describe what you think is the most important exercise that programmers should do to become better ?

Thank you,
Paul
 
Author
Posts: 17
5
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Hi Paul,

I think I'm going to be a jerk here and say that all exercises are "the most important" exercises, hope you don't mind! The problem with seeking quick-fixes, especially when it comes to creativity, is that in the end you're not really flexing any muscles but just plugging that one hole. Creativity is systemic and contextual: this means (1) it's connected to everything (to collaborative efforts, to the global available technical knowledge, to your critical thinking, ...) and (2) it depends on the situation (that includes the project, the team, the support of your superiors, your mood, ...).
If you were to pick out one as "most important", say a thinking outside of the box exercise, you're simply getting better at divergent thinking. Which is great! But that's not creativity--that's just _one_ aspect of a multidimensional phenomena that's harder to grasp than you might think.

In short: when it comes to creativity, don't get better at one thing but try to explore and develop all dimensions (which are of course mentioned in the book)!
I hope I didn't let you down haha!
 
paul nisset
Ranch Hand
Posts: 576
2
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Hi Wouter,
I agree with  you about quick fixes . You might resolve an immediate problem but they usually don't make you better as a programmer  . Other than reducing the stress of the immediate problem, of course !

I tend to take a process approach to projects .  I can see how thinking creatively would be an important part of that process.

This seems like an interesting book.
thank you,
Paul
 
Sheriff
Posts: 17665
300
Mac Android IntelliJ IDE Eclipse IDE Spring Debian Java Ubuntu Linux
  • Likes 1
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

paul nisset wrote:
Can you describe what you think is the most important exercise that programmers should do to become better ?


One exercise for me is definitely reading. Whether it's books, articles, posts, or other people's code, read as much as you can and as varied as you can. This will at least, and hopefully, broaden your perspectives which in turn opens up new pathways for you to follow when you're trying to solve a problem.

The other thing, and maybe it's THE most important thing for me, is practice. Practice. Practice. It's the best way to Carnegie Hall.
 
paul nisset
Ranch Hand
Posts: 576
2
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
I totally agree with both of those points . Nothing quite replaces actually programming and trying to make something work. Especially when I don't l know how to  do it. Those situations inevitably involve a lot of reading as well.
 
Junilu Lacar
Sheriff
Posts: 17665
300
Mac Android IntelliJ IDE Eclipse IDE Spring Debian Java Ubuntu Linux
  • Likes 1
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
One thing I'm particularly passionate about is clear, expressive code. I believe refactoring is an important skill to learn if you want to get better at writing clear, expressive code. The volume and variety of things I read about refactoring is probably greater than what most programmers read. The amount of practice that I put into doing refactoring exercises is also probably disproportionately greater than what most programmers do.

Just this past weekend, I spent 4 hours practicing with other people online in the latest iteration of Bob Allen's Code Craft Saturday and Sunday (he does this every two weeks so if you're interested in joining, check him out on LinkedIn)

Retrospecting on my experience in those sessions, I had new insights into how I can improve my TDD, refactoring, and unit testing practice. So even though I didn't find the sessions I joined particularly stimulating or thought provoking, I still did get good value from the experience and the opportunity to observe and think about how other people were doing refactoring in a mobbing situation.

If you're interested in seeing some of the work we did, take a look at this kata: https://cyber-dojo.org/kata/edit/WGehLz

I didn't think the refactoring results were very good but, well, Cunningham's Law (essentially, post the wrong answer if you want to get the right answer). Now I have a way to see how I could do better.
 
paul nisset
Ranch Hand
Posts: 576
2
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
That's an interesting example of exercises to do. Thank you for the tips.
 
wouter groeneveld
Author
Posts: 17
5
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Coding practice certainly makes perfect, but we're still focusing on the technical aspect of creativity in software engineering while the non-technical aspects are as important, if not more. To me, refactoring, code kata's, etc are all very well-known and well-employed practices that should be augmented with other creative skills.
Reading indeed is paramount -- if you don't know about the multiple dimensions and socio-cultural aspects of creativity, you won't focus and exercise on those, as simple as that. But reading a book like The Creative Programmer doesn't work if your boss tells you to: you need to be intrinsically motivated to do so!
In a recent study, my colleagues and I discovered that graduate computing students perceive creativity in programming mostly as a technical endeavour like you mention here. They didn't even realize creativity in itself is a skill that can be learned and practiced. One of the reasons why I wrote the book is to spread the message and to help people realize the multidimensionality of creativity. If there's one thing you should take away from it, it's that!
 
paul nisset
Ranch Hand
Posts: 576
2
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

creativity in itself is a skill that can be learned and practiced.


That's a great point.
Thank you for pointing out  the distinction.
 
He was expelled for perverse baking experiments. This tiny ad is a model student:
Smokeless wood heat with a rocket mass heater
https://woodheat.net
reply
    Bookmark Topic Watch Topic
  • New Topic