Like Tree12Likes

How you guys learn programming?

This is a discussion on How you guys learn programming? within the C Programming forums, part of the General Programming Boards category; Originally Posted by xeon321 Yeah, it is fun when you're cracking your head to figure out how to solve problems. ...

  1. #16
    Registered User
    Join Date
    Jun 2005
    Posts
    6,157
    Quote Originally Posted by xeon321 View Post
    Yeah, it is fun when you're cracking your head to figure out how to solve problems. But too bad, most of the 'problems' are self-imaginary(in my case, validating user input). And after writing the program, cracking your head AGAIN to think up of an even better & efficient solution
    Personally, I generally enjoy that process of cracking the head to figure out how to solve problems. But that's because I love learning new stuff, and doing things I haven't necessarily done before.

    The thing that a lot of people forget is that software development - if it is done right, and particularly if it is "advanced" - includes a lot of creative and exploratory problem-solving activity, rather than just (at the risk of mixing metaphors) following a cookbook process to recreate wheels. And it is the creative and exploratory processes that I enjoy, whether it is in design, coding, or debugging.

    The key to being a really good developer is to embrace the creative and exploratory processes, not to avoid them.

    Unfortunately, a few too many product designers and project managers view software as a cook-book activity (in other words, they expect to tell the developers what to do, and expect them to just translate directions into code). But, if you can get product designers and project managers who engage the software people in the creative process, the job is more satisfying, and the products produced also tend to be a lot better.
    Right 98% of the time, and don't care about the other 3%.

  2. #17
    Registered User
    Join Date
    Jun 2012
    Posts
    82
    But that's because I love learning new stuff, and doing things I haven't necessarily done before.

    Yes, I agree with you on that. But in my case, I thought up some ideas which I couldn't translate into codes due to it's out of my knowledge.
    Thus, I learn and eventually 'translated' the ideas into the codes. Which is why I'm one step ahead from my course mates.

    they expect to tell the developers what to do, and expect them to just translate directions into code

    Couldn't really blame them, since it is not one man's job. If each team members coding in their own will , the program gonna be real messy when added together.
    Creativity is individual, thus not all shares it. But following a cookbook process is a process where every programmer went through together. It will be easier for them I guess.
    Just my thought based on what the lecturer has taught me about being a lead/manager.

  3. #18
    a_capitalist_story
    Join Date
    Dec 2007
    Posts
    2,648
    Here's my suggestion to add to the multitude of excellent ones previously supplied.

    Learn how to use your development environment's debugger. Download some moderately sized open source project, compile it in debug mode and step through the code in the debugger. Look at how variables change. Pay special attention to how variables are passed to and from functions. Find someone on the forum with a problem -- especially segmentation faults or access violations -- and full source code provided. Download the code, compile it in debug mode, and step through it (if the poster is complaining of it crashing, just run it and let it crash). At the point of failure, check out the values in the variables to see if you can't determine what the problem is. You'll also learn much about internal structure of the system.

    A large, large part of software development is debugging. Getting intimate with this process will go a long way toward your learning.
    whiteflags likes this.

  4. #19
    Registered User
    Join Date
    Jun 2012
    Posts
    82
    don't get comfortable with a particular level of knowledge

    Oh trust me, I won't

    Download the code, compile it in debug mode, and step through it


    Mm...Yes, I will add this into my to-do list too. A good suggestion indeed. Thanks

  5. #20
    Registered User
    Join Date
    Jun 2005
    Posts
    6,157
    Quote Originally Posted by xeon321 View Post
    Couldn't really blame them, since it is not one man's job. If each team members coding in their own will , the program gonna be real messy when added together.
    I think you're misunderstanding my point. I'm not arguing for anarchy. The team needs to work in a systematic manner, follow appropriate design and coding guidelines, etc etc. But those need to shape creativity, not eliminate it.

    Quote Originally Posted by xeon321 View Post
    Creativity is individual, thus not all shares it.
    Every individual is creative in different ways. A team of creative people, however, will not be creative unless all of the individuals within it work toward a common goals. It will also be less creative if creativity of some team members is suppressed.

    The phenomenon I argue against is people in certain roles (project manager, system architect, product designer, etc) insisting that the only creative work is done by them, and all the software guys have to do is build what they are told to.

    Quote Originally Posted by xeon321 View Post
    But following a cookbook process is a process where every programmer went through together. It will be easier for them I guess.
    Just my thought based on what the lecturer has taught me about being a lead/manager.
    As I said above, I am not arguing for anarchy. There are always certain processes, policies, and standards that need to be adhered to.

    However, there is more to being a leader or manager of a software team than dropping a set of coding standards, a gant chart, and a set of directions on the table, and expecting the programmers to "just code it up". That sort of approach, which is VERY common in the industry, tends to result in unproductive and grumpy programmers.

    Sometimes there is not flexibility of choice. For example, in safety critical system development, it is often necessary to follow restrictive processes and produce certain documentary evidence that the system design and implementation provides appropriate mitigation of hazards. But, put arbitrary constraints on a team without a good reason, the creativity will be stifled.

    One of the constraints often put on a team is that the software guys are denied necessary creative opportunity by other team members who deem the creativity to be their territory.
    Right 98% of the time, and don't care about the other 3%.

  6. #21
    Registered User
    Join Date
    Jun 2012
    Posts
    82
    Ah, sorry for my misunderstanding. I get you now. Yes, I won't be pleased too if my lecturer ordered me to code according to his directions only.

    Hmm, in your opinion, why would the project managers/leaders restrict the software developers?

  7. #22
    Registered User
    Join Date
    Jun 2005
    Posts
    6,157
    Quote Originally Posted by xeon321 View Post
    Hmm, in your opinion, why would the project managers/leaders restrict the software developers?
    Human nature.

    People put in positions of authority often like to exercise that authority. Sometimes they do that by constraining others. Pure power game.

    A lot of project managers or team leaders have not been in the trenches of software development. They have learned basics of some language or process in a course somewhere and assume that means they know all of it .... so they don't accept deviations from their way of business.

    Sometimes it is fear of the unknown. Letting a team go ahead with the creative elements of the job makes it difficult to measure progress. That makes it hard to report progress to stakeholders who hold the purse strings (accountants, CEO's, clients, etc). This causes managers and leaders, whether they have experience with software or not, to suppress creativity of their teams because that is the path of least resistance.

    I remember one project manager for a very complex technical system who took pride in the fact he had no knowledge of "ones and zeros" (his description of the details that he described as too low level to be relevant to anyone). That project failed in a spectacularly expensive manner after the project manager was promoted.

    Customers of a software development team are often only interested in the externally visible behaviour of the software (GUI, the actions of devices the software controls, etc). They have no interest in the details of HOW the software achieves those visible things.

    There are many other reasons. Also bear in mind that - contrary to what a lot of managers claim - management is not the same thing as leadership. Management is about managing resources and measuring progress toward outcomes. Leadership is about motivating people.
    stahta01 likes this.
    Right 98% of the time, and don't care about the other 3%.

  8. #23
    Registered User
    Join Date
    Jun 2012
    Posts
    82
    To show their power, agree.

    For better, less risky way to get things done, yup, a manager whom don't have confidence in the software dev team's job. But o'well, like you said management is about managing resources and measuring progress toward outcomes.

    Yes, customers are only interested in the final product. They paid, they expect they get something nice and easy in return, who doesn't ?

Page 2 of 2 FirstFirst 12
Popular pages Recent additions subscribe to a feed

Similar Threads

  1. How do you guys go about programming when you don't feel like programming
    By Silvercord in forum A Brief History of Cprogramming.com
    Replies: 20
    Last Post: 03-04-2003, 04:36 AM
  2. How old are you, and when did you learn programming.
    By ammar in forum A Brief History of Cprogramming.com
    Replies: 61
    Last Post: 12-16-2002, 06:18 PM
  3. Just to let you guys know about a new Programming Newsletter
    By webmaster in forum A Brief History of Cprogramming.com
    Replies: 6
    Last Post: 12-26-2001, 09:58 PM
  4. How do you learn programming?
    By meka in forum C++ Programming
    Replies: 2
    Last Post: 11-08-2001, 08:04 PM

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21