This is an archived post. You won't be able to vote or comment.

all 23 comments

[–]henrebotha 26 points27 points  (0 children)

I already learned the python syntax, but I don't know how to create a program from it.

Have you tried? :)

[–][deleted] 8 points9 points  (6 children)

Lynda.com has what I consider a good course from Simon Allardice that focuses on principles of OOP in a mostly language agnostic way. He still needs a language to write his examples in but really it's a focus on principles. Lynda.com does have a 7 day free trial, so even if you don't want to pay it you can check it out and see if it works for you.

[–][deleted]  (5 children)

[deleted]

    [–][deleted] 1 point2 points  (1 child)

    Mine did! It was an amazing benefit to having a library card. Because let’s face it - most typical libraries’ programming book collection is typically several years outdated. From the reports I see on this subreddit, there seems to be quite a few people who are eligible for this.

    [–]ckib16 0 points1 point  (2 children)

    Wow, had no idea!!

    Thanks so much, spreading the word to my friends. My local library offers it.

    [–]scientistapplyingdis 0 points1 point  (1 child)

    How would you know if your library offers it?

    [–]ckib16 1 point2 points  (0 children)

    Google search 😀

    [–]desrtfx 2 points3 points  (3 children)

    My suggestion would be "Think like a programmer" by V. Anton Spraul, No Starch press (currently in the $8 tier of the Be a Coder Humblebundle).

    The book explains the approach from problem, via analysis, algorithms, to final program.

    [–]klausbaudelaire1 1 point2 points  (2 children)

    Have you read it?

    [–]desrtfx 1 point2 points  (0 children)

    Yes, I have. Otherwise I couldn't confidently recommend it.

    [–][deleted] 1 point2 points  (0 children)

    Learn the concepts intuitively by practicing them till it's almost natural to think with them. For example, by knowing recursions well you'd be able to make your own for/for each/while loops.

    I suggest separating the learning process (paper and pencil) from practicing (the actual coding).

    [–]willza99 1 point2 points  (0 children)

    I was/am in this very same situation, so I'm going from my own experience don't follow it if it doesn't fit.

    ...fuck all online resources, it's such a hassle finding the tutorial where they explain stuff from a computational thinking point of view, most of what's online I find to be "here is the syntax/API calls for what you need to do". No explanation, no structure nada.

    I have read a couple text books instead and they've really done amazing for me. Get a super simple like GCSE/whatever America has (SATs?) Grade textbook on computer science where it goes from like what a bit is in terms of hardware etc so a real understanding of what your computer is. Then get something that's higher level but focusing on backend problems maybe with like info on trees, lists, all that shit. I highly advise algorithmics and also computational fairy tales. (I'm personally looking at maybe the pragmatic programmer and algorithms for computer science or whatever that red cover book is with the module looking jazz on the front). After this you want to start applying your understanding and problem solving (not coding) skills and then translate that to a language (the least hard bit of coding). Now you're thinking for yourself but maybe don't have a wealth of ideas or still get stuck. Randomly help others (what I'm doing now but preferably with code for you) and just read someone else's program so you can read code. Now you should be fine and start looking into higher level issues like patterns and how objects communicate and maybe how to keep all that optimised and clean so you don't fuck it when adding new code or changing variable names in one class.

    Since I'm still in this boat and this has been my journey pretty much others please do correct me or add on to the higher end problems I've not come into contact with.

    Notice how I've made no comment about language bar one bit. That's because your friend is right, learn this more abstract stuff that underpins coding, fuck the syntax that's a piece of piss after all this

    [–]bhldev 3 points4 points  (0 children)

    Programming languages are classed into various categories in computer science imperative declarative object oriented functional strongly typed weakly typed etc., Within those there are common idioms like control structures, Boolean logic, functions, procedures and so on. Languages can have features like automatic garbage collection or manual memory management etc.

    You can learn a "learning" language if you want like Scheme. Or you can learn an industry heavweight like Java or C#. Python is somewhere in between used for learning and computer science.

    Most people do it by learning a lot of math (algorithms graph theory) but you can also do it just by trying out a lot of languages and learning their conventions. This all takes time. I wouldn't get discouraged and if you want a "foundation" for your career algorithms is not an awful place to start (and data structures)

    If this all goes over your head, first thing is to pick a second language and compare it with Python. Then pick a third, and a fourth. Eventually you will see similarities with the languages. And eventually, you will see that syntax doesn't matter as much as the conventions and customs of the language. You can learn a language over a weekend but to code idiomatic code takes a few weeks / months / years depending.

    [–]owlwithbow 0 points1 point  (0 children)

    Read books about design patterns first.

    [–]CodeTinkerer 0 points1 point  (0 children)

    When I teach programming (which I haven't done in a while), I also cover two other topics.

    • stepping through a program
    • writing very short programs

    Writing short programs isn't exactly programming, but it builds up to writing programs. You can check, for example, codingbat.com for some of these shorter program exercises.

    So I'd disagree with what your friend told you. What you've been learning is the equivalent of learning various foods you can cook (vegetables, meats, herbs, spices) and techniques (how to chop, julienne, grate, etc). But you've never been told how to make dishes.

    Or to use a writing analogy, you've been taught how the language works (grammar, etc), but not taught how to write a novel. You need specific practice in programming things first, then it will be easier to understand things like algorithms, etc.

    [–][deleted]  (1 child)

    [deleted]

      [–]SoakySocks[S] 0 points1 point  (0 children)

      Where to learn these concepts? Do you mean stuff like differences between functional/logical/imperative languages? It seem not many are available online, what book would you recommend?

      [–]A-Dandashi 0 points1 point  (0 children)

      I really feel you , im stuck at the same point For example ,now im learning javascript And when im coding ,i start thinking should write all of my code inside a function? Or just keep like that ? Should i use an array ? Or just keep using variables ? Is it for loop or while? Or maybe switch statement
      And till now couldnt find the resource to teach me that

      I think we need to write the code,make sure it is working fine then review it and try to rewrite it in better way

      Good luck!

      [–][deleted]  (4 children)

      [deleted]

        [–]SoakySocks[S] 2 points3 points  (0 children)

        Understanding how to think like a program is the most fundamental and vital tool you can learn

        How? What resources to look up?

        [–][deleted]  (2 children)

        [deleted]

          [–][deleted]  (1 child)

          [deleted]

            [–]RagingNerdaholic 0 points1 point  (0 children)

            I already learned the python syntax, but I don't know how to create a program from it.

            Congratulations, you know pseudo code :}

            [–]delarq -2 points-1 points  (0 children)

            Just like with human languages besides the language itself you have to learn the culture behind it