4
paras1904
77d

Can anyone guide how to be a good programmer i have recently learned c language

Thanks in advance

Comments
  • 3
    Get familiar with undefined behaviour in C, there are numerous gotchas that you need to know.

    https://blog.regehr.org/archives/...

    http://blog.llvm.org/2011/05/...

    http://blog.llvm.org/2011/05/...

    http://blog.llvm.org/2011/05/...
  • 3
    Oh, you "learned" C? Usually someone making that statement has only learned some basic syntax (see the above comment on undefined behaviour).

    A good programmer knows how to solve problems in performant, clear and maintainable way and can express themselves in a multitude of languages.

    If you want to become a better programmer, I would suggest learning at least another language, and then doing some coding katas in both languages to get a feel for how the same concepts are represented in different ways.
  • 0
    @unsignedint thank u brother but what other language should i lear c++ or python or java
  • 0
    @Fast-Nop thanks brother
  • 1
    @paras1904 C++ is a clusterfuck nightmare of a language, I would stay away from it unless you are wanting to get into an industry that uses it (eg the games industry).

    If you're like the majority of us who work for various businesses on data-driven webapps and middleware, then have a look at C# or Java since they are more different from C than Python is, and will get you thinking in terms of objects.

    You could then try and implement objects in C to gain an understanding of the abstractions that higher-level languages provide, and why nobody uses C anymore except in very specific scenarios that usually involve either legacy codebases or hardware-level programming.
  • 0
    @unsignedint ok i ll learn python thanks a lot big brother
  • 3
    @unsignedint or that involve shit getting fast because C keeps out programmers who can't or don't want to think on machine level. That's why Git is in C although it's clearly userland, Torvalds made no secret out of that.
  • 0
    @Fast-Nop brother i like ai and ml but some of my seniors confused me by saying that c++ is necessary for concepts like obbs
  • 0
    @paras1904 C++ isn't necessary. However, when your problem domain actually has objects, then a language with direct OOP support just makes sense.

    That's the case for physics simulation including many games as well as GUIs.
  • 2
    @unsignedint goddammit that’s a terrible advice...

    @paras1904 just take it easy, practice, think of a project you would like to make and make it your long term goal you will gradually improve. After you finished, pick another - more challenging... Good developers spend their whole life’s learning and practicing, even outside of their job.

    Also read books, especially the ones of respective authors like R. C. Martin, M. Fowler, Rob Pike...

    Then when you feel good enough in single language, you can try pick up something new.
  • 0
    http://catb.org/~esr/faqs/...

    Read that, take 10 years to follow it to the letter and don't ignore the Lisp and Haskell parts.

    You'll be the best you can be.
  • 1
    If you just learned C, then you know pretty much nothing about C, and less about programming. And that's fine. Everyone starts somewhere. I still learn new things about C every time I write it.

    Every good programmer knows several languages. Every language has its own quirks and those quirks cause you to think in new ways. Those lessons carry over and cross languages.

    Learn an interpreted language. Maybe two or three. Python and Ruby are great candidates. They produce pretty nice looking code and run reasonably fast (there's only so much you can expect from an interpreter).

    Then, really dive deep into C. Play with things. Do things against the rules, segfault a few thousand times, figure out why. Maybe even try gdb. See what's ACTUALLY running. The ASM. Try to reverse it (turn off optimizations in gcc)

    Next is design patterns and algorithms. Learn recursion (and quickly learn how to smash the stack with "Max recursion depth exceeded")

    Over all just keep learning. Good luck!
  • 0
    @SevenDeadlyBugs That's good advice. Always start with something that focuses on architecture like Java or C#, then learn JavaScript or Python
Your Job Suck?
Get a Better Job
Add Comment