Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. The Lounge
  3. Someone help me choose which to learn first, can't and lost

Someone help me choose which to learn first, can't and lost

Scheduled Pinned Locked Moved The Lounge
pythonphphtmlcsshelp
45 Posts 28 Posters 10 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • S sammygirl

    Where would you recommend a beginner to start in programming? I do have a brief understanding of these languages but need help choosing which is the most skillful and practical in the real world to learn and put to use? I want to do something related solving, building, not just dealing with data. I want to see creations come to life. 1.Python 2.Php 3.HTML/CSS 4.Javaschript Which shall I choose?

    J Offline
    J Offline
    James Curran
    wrote on last edited by
    #24
    1. HTML/CSS - HTML is simple, and you can learn enough to get by in an afternoon. Same with CSS, but expect things not to look like you expect for a while, till you get the hang of it. 2) Javascript --Specifically, ES6 or later, or better, TypeScript. It has the lowest barriers to enter (no compiler; just a text editor & browser), and give you the basics of OO design. 3) Python. 4) Php -- actually, I can't offer any reason to learn PHP.

    Truth, James

    1 Reply Last reply
    0
    • L Lost User

      Sure, and write your own microkernel to load it while you're at it :)

      Bastard Programmer from Hell :suss: If you can't read my code, try converting it here[^] "If you just follow the bacon Eddy, wherever it leads you, then you won't have to think about politics." -- Some Bell.

      M Offline
      M Offline
      MarkTJohnson
      wrote on last edited by
      #25

      That was one project I had in college, not to actually load but to pseudocode it out. It was one I didn't finish. Wife had a miscarriage at the time didn't help the brain to function. We did eventually have 3 kids and the oldest is pregnant with our first grandchild, due at the end of August so no condolences needed.

      L 1 Reply Last reply
      0
      • M MarkTJohnson

        That was one project I had in college, not to actually load but to pseudocode it out. It was one I didn't finish. Wife had a miscarriage at the time didn't help the brain to function. We did eventually have 3 kids and the oldest is pregnant with our first grandchild, due at the end of August so no condolences needed.

        L Offline
        L Offline
        Lost User
        wrote on last edited by
        #26

        MarkTJohnson wrote:

        due at the end of August so no condolences needed.

        Congratulations on almost being Grandpa! :-D

        Bastard Programmer from Hell :suss: If you can't read my code, try converting it here[^] "If you just follow the bacon Eddy, wherever it leads you, then you won't have to think about politics." -- Some Bell.

        1 Reply Last reply
        0
        • S sammygirl

          Where would you recommend a beginner to start in programming? I do have a brief understanding of these languages but need help choosing which is the most skillful and practical in the real world to learn and put to use? I want to do something related solving, building, not just dealing with data. I want to see creations come to life. 1.Python 2.Php 3.HTML/CSS 4.Javaschript Which shall I choose?

          D Offline
          D Offline
          David Carta
          wrote on last edited by
          #27

          VB.net I currently have a high school sophomore/Junior interning for me who had no idea about programming to start with. I thought PHP/html/js would be a good start, following a book. Boy was I ever wrong. We switched this intern to VB.net and the immediate feedback and seeing results made all the difference. And I think the language is far easier to pick up than C#, while allowing you to do everything you need to. This is not necessarily what I would have a true CS student learn. There is a value to continually hitting your head against a wall and feeling the relief of breaking through only to do it again, that you experience with other languages. This is how I describe development to new engineers. Learning this fortitude is a useful skill. But for a self taught newbie, I would go with VB.net. Once you know one language, the rest are all about understanding various types of syntax.


          "Qulatiy is Job #1"

          K 1 Reply Last reply
          0
          • K kalberts

            OO and OO are different things. I believe that simple use of OO is great for a beginner. The problems come when some code wizard comes to show all the superfancy ways you can use the most intricate details of advanced OO to do things that only code wizards will understand :-) I was coding C++ for a number of years, before taking over a couple of C# projects. Then, after a few years, I picked up one of my old hobby C++ projects, and got terribly frustrated: I had completely forgotten about all those messy details, having nothing to do with solving the problem, but with initialization / setup, heap management and lots of other stuff. I felt as if I had to search through an intertwingled mess of really not relevant code details to find the real problem solution parts. So my vote goes for C# rather than C++. It also gives you basic OO "for free"; there is no way to do C# without objects - but it doesn't have the cost that it does in C++. I'd also say that Visual Studio support for C# is better than for C++, but that is partially because the language (read: the lack of explicit pointer handling) makes it easier to provide better support. In one respect I fully agree with you: Especially for a beginner, a compiled language is essential. Then entire program code must be syntactically checked (and as far as possible, semantically checked) before any execution - that is a great help for a beginner. And the continous syntax checking while editing, done by VS, is a great help to reduce the compilation errors. So, thumbs up for compiled, strictly typed languages.

            J Offline
            J Offline
            Joe Woodbury
            wrote on last edited by
            #28

            The reason I push for procedural at first is that the student needs to understand HOW the code does what it does. The single biggest problem I've seen with students who learn managed object-oriented languages first is they don't understand memory management. For a hobbiest, C# is probably the best way to go. For someone looking at a career, what C/C++ teaches you about how computers work is invaluable. It gives you a solid foundation to effectively move to more abstract languages. (Incidentally, several years ago, I had started to transition from C++ to C#, especially for one-off utilities. Then C++11 came out and resolved enough points of frustration that I went back to C++ save for one project. Except, toward the end of that one project, I encountered enough serious pain points with C# that I regretted not "porting it" to C++. This is not the first time, C# led me to the edge of a cliff and then said "adios.")

            K 1 Reply Last reply
            0
            • K KBZX5000

              Easy there.. that's decent learning. People stopped doing that a while ago. I don't think people have the patience for C++ anymore. At least not as a first language. I still remember trying to figure out pointers when I was 12. Good times. First time I ever yelled at a computer screen, a book, and cursed the gods.

              J Offline
              J Offline
              Joe Woodbury
              wrote on last edited by
              #29

              But the thing is, ALL programming has pointers at the core, even if we pretend they are something different. (Of course, pointers in C can get very out-of-hand. If I see something like ***pointer[offset], my eyes glaze over.)

              K 1 Reply Last reply
              0
              • K KBZX5000

                Can't you just do C# in Visual Studio Code like a normal beginner? If you can figure out how to set up Visual Studio Code to compile, run, and debug your code, you will have gained a valuable real-world practical skill. If you get started with .NET Core 2.1 today (= the thing that runs your C# code) you'll be somewhat good at it when they reach version 3. Version 3 will introduce a bunch of UI stuff. If you time it right, you can get on that gravy train when it starts chugging. If I have to pick something from that list, do Python. But don't get bamboozled: starting with python is really easy, but it takes forever to get good at it. C# is harder to pick up, but you get good at it much faster. Also, number 2 is a raging dumpster-fire, number 3 ian't a damn programming language, and number 4 is spelled wrong. But those are just details you can safely ignore for now. We all have to start somewhere.

                J Offline
                J Offline
                Joe Woodbury
                wrote on last edited by
                #30

                KBZX5000 wrote:

                and debug your code

                Still surprised at how many developers don't know how to effectively debug code. During my career, I've run across more than one "experienced [in years] developer who didn't know how to run a debugger and so used a form of console output and/or logs.

                K 1 Reply Last reply
                0
                • S sammygirl

                  Where would you recommend a beginner to start in programming? I do have a brief understanding of these languages but need help choosing which is the most skillful and practical in the real world to learn and put to use? I want to do something related solving, building, not just dealing with data. I want to see creations come to life. 1.Python 2.Php 3.HTML/CSS 4.Javaschript Which shall I choose?

                  J Offline
                  J Offline
                  Joe Woodbury
                  wrote on last edited by
                  #31

                  One more thing about C++ or C#; being able to step through your code in a debugger is invaluable for learning and the Visual Studio debugger[s] beat all others by a very wide margin. (JetBrains makes excellent IDEs, but I haven't tried PyCharm, so perhaps it may qualify, though I still don't like python as a beginner language.)

                  1 Reply Last reply
                  0
                  • realJSOPR realJSOP

                    I recommend that ALL programmers learn Assembly language first, followed by C, and then branching out o the "simple" languages.

                    ".45 ACP - because shooting twice is just silly" - JSOP, 2010
                    -----
                    You can never have too much ammo - unless you're swimming, or on fire. - JSOP, 2010
                    -----
                    When you pry the gun from my cold dead hands, be careful - the barrel will be very hot. - JSOP, 2013

                    A Offline
                    A Offline
                    Alan Burkhart
                    wrote on last edited by
                    #32

                    John Simmons / outlaw programmer wrote:

                    I recommend that ALL programmers learn Assembly language first,

                    Back in the 80s I tried my hand at assembly. At the time my only programming experience was with TI Basic on a little home computer. After a few days (daze) I finally managed to put a 8x8 colored square on the TV screen. That was the end of my "career" with assembly. :-D

                    Sometimes the true reward for completing a task is not the money, but instead the satisfaction of a job well done. But it's usually the money.

                    1 Reply Last reply
                    0
                    • S sammygirl

                      Where would you recommend a beginner to start in programming? I do have a brief understanding of these languages but need help choosing which is the most skillful and practical in the real world to learn and put to use? I want to do something related solving, building, not just dealing with data. I want to see creations come to life. 1.Python 2.Php 3.HTML/CSS 4.Javaschript Which shall I choose?

                      P Offline
                      P Offline
                      patbob
                      wrote on last edited by
                      #33

                      sammygirl wrote:

                      I want to do something related solving, building, not just dealing with data

                      That's kind of vague. There's lots of really interesting and cool things you can work on with any of those languages. Since those things are obviously not what you're interested in doing, and you haven't been specific, then I suggest you look at job postings for the kind of work you want to do. Learn the language that seems to come up the most in them. That won't get you the job you want, but it's a step in that direction.

                      I live in Oregon, and I'm an engineer.

                      1 Reply Last reply
                      0
                      • D David Carta

                        VB.net I currently have a high school sophomore/Junior interning for me who had no idea about programming to start with. I thought PHP/html/js would be a good start, following a book. Boy was I ever wrong. We switched this intern to VB.net and the immediate feedback and seeing results made all the difference. And I think the language is far easier to pick up than C#, while allowing you to do everything you need to. This is not necessarily what I would have a true CS student learn. There is a value to continually hitting your head against a wall and feeling the relief of breaking through only to do it again, that you experience with other languages. This is how I describe development to new engineers. Learning this fortitude is a useful skill. But for a self taught newbie, I would go with VB.net. Once you know one language, the rest are all about understanding various types of syntax.


                        "Qulatiy is Job #1"

                        K Offline
                        K Offline
                        kmoorevs
                        wrote on last edited by
                        #34

                        100% Agree! :thumbsup:

                        "Go forth into the source" - Neal Morse

                        1 Reply Last reply
                        0
                        • S sammygirl

                          Where would you recommend a beginner to start in programming? I do have a brief understanding of these languages but need help choosing which is the most skillful and practical in the real world to learn and put to use? I want to do something related solving, building, not just dealing with data. I want to see creations come to life. 1.Python 2.Php 3.HTML/CSS 4.Javaschript Which shall I choose?

                          L Offline
                          L Offline
                          Lost User
                          wrote on last edited by
                          #35

                          [Scratch - Imagine, Program, Share](https://scratch.mit.edu/) Scratch uses "components" to program (versus "code"). It's the future. (See Unreal Game Engine and Lego Mindstorms EV3 for other examples of component / blueprint based programming).

                          "(I) am amazed to see myself here rather than there ... now rather than then". ― Blaise Pascal

                          1 Reply Last reply
                          0
                          • S sammygirl

                            Where would you recommend a beginner to start in programming? I do have a brief understanding of these languages but need help choosing which is the most skillful and practical in the real world to learn and put to use? I want to do something related solving, building, not just dealing with data. I want to see creations come to life. 1.Python 2.Php 3.HTML/CSS 4.Javaschript Which shall I choose?

                            J Offline
                            J Offline
                            jamesvtoomey
                            wrote on last edited by
                            #36

                            I think HTML and Javascript are your best bet, for a number of reasons: 1) You visually see changes on a website that you're building, as opposed to just printing "hello world" messages to a shell. 2) Your work is publicly available via the web (assuming you put it on a real website), so it's easy to ask for help/feedback from friends even if they're far away. 3) It's easy/cheap to get started. You can buy your own web domain for $20/year, and a basic hosted website for $6/month or so. 4) You only need a text editor like Notepad to start writing code; you don't need to worry about compiling it. 5) It gives you a good sense of how the web stuff works, how the browser talks to the server. 6) The skills are in high demand right now. I wouldn't get into any back-end languages like PHP or Python at this point. Learn how to manipulate the HTML using Javascript, and you'll learn a lot.

                            1 Reply Last reply
                            0
                            • K KBZX5000

                              Easy there.. that's decent learning. People stopped doing that a while ago. I don't think people have the patience for C++ anymore. At least not as a first language. I still remember trying to figure out pointers when I was 12. Good times. First time I ever yelled at a computer screen, a book, and cursed the gods.

                              K Offline
                              K Offline
                              kordaff
                              wrote on last edited by
                              #37

                              But definitely not that last huh, unless your job title now has 'of sales' in it =)

                              K 1 Reply Last reply
                              0
                              • J Joe Woodbury

                                The reason I push for procedural at first is that the student needs to understand HOW the code does what it does. The single biggest problem I've seen with students who learn managed object-oriented languages first is they don't understand memory management. For a hobbiest, C# is probably the best way to go. For someone looking at a career, what C/C++ teaches you about how computers work is invaluable. It gives you a solid foundation to effectively move to more abstract languages. (Incidentally, several years ago, I had started to transition from C++ to C#, especially for one-off utilities. Then C++11 came out and resolved enough points of frustration that I went back to C++ save for one project. Except, toward the end of that one project, I encountered enough serious pain points with C# that I regretted not "porting it" to C++. This is not the first time, C# led me to the edge of a cliff and then said "adios.")

                                K Offline
                                K Offline
                                kalberts
                                wrote on last edited by
                                #38

                                I meet a lot of newly educated C++ "experts" in my work. Most of them know very little about "HOW the code does what it does". They have no idea how a compiler operates, how optimization is done, how a stack is managed. They know about high level language constructs, not of the generated code. Unrolling the stack on an exception? No clue! Interrupt handler operation? No clue. OS service activation methods, with the necessary raising of privilege level etc? No clue. How OO is implemented - the class object, multiple inheritance, virtual methods, ...? No clue. They (think that they) know how it works at the object level, not at the code level. How is memory allocated for a dozen of threads in the same address space? How does the system clean up allocated resources when a thread, or a process terminates? (You do not free() the thread stack, or file control blocks, or I/O buffers!) I learned OO concepts by studying how the C++ compiler produced K&R C source code that could be compiled on any machine. Noone does that today. C and C++ programmers alike: Tthe know more of how the job market works than how a computer works at the instruction set / register / interrupt / MMS level. Or at the system level. I commented to one of the youngsters that the elevator in our office building doesn't run a propoer elevator algorithm; it may turn even if there are other users at higher/lower levels. Elevator algorithm - huh? Once I referred to excption propagation through the dynamic or static link - they had never heard about 'static link'- this was in a discussion of abandoned languages that do have a static link; that was completely new to them. And so on. Beliving that youngsters know memory management because you stress to them what comes up (of malloc) must come down (to free) doesn't teach them how memory is managed. They know of constructors and destructors, but not of the code behind those. And seriously: Programmers haven't had to understand compiler code generation and hardware addressing modes for a generation. Why should the average student have to know about buddy allocation an firstfit/bestfit and memory compaction, more than of different instruction set addressing methods? Students are relieved of understanding jump instructions by high level 'for' and 'while' loops and switch statements. There is no real reason why they should spend much more attention to memory management (until they become far more advanced). The only 'excuse' is that when programming in C++, you certainly should know it! In languages with a

                                J 1 Reply Last reply
                                0
                                • K kalberts

                                  I meet a lot of newly educated C++ "experts" in my work. Most of them know very little about "HOW the code does what it does". They have no idea how a compiler operates, how optimization is done, how a stack is managed. They know about high level language constructs, not of the generated code. Unrolling the stack on an exception? No clue! Interrupt handler operation? No clue. OS service activation methods, with the necessary raising of privilege level etc? No clue. How OO is implemented - the class object, multiple inheritance, virtual methods, ...? No clue. They (think that they) know how it works at the object level, not at the code level. How is memory allocated for a dozen of threads in the same address space? How does the system clean up allocated resources when a thread, or a process terminates? (You do not free() the thread stack, or file control blocks, or I/O buffers!) I learned OO concepts by studying how the C++ compiler produced K&R C source code that could be compiled on any machine. Noone does that today. C and C++ programmers alike: Tthe know more of how the job market works than how a computer works at the instruction set / register / interrupt / MMS level. Or at the system level. I commented to one of the youngsters that the elevator in our office building doesn't run a propoer elevator algorithm; it may turn even if there are other users at higher/lower levels. Elevator algorithm - huh? Once I referred to excption propagation through the dynamic or static link - they had never heard about 'static link'- this was in a discussion of abandoned languages that do have a static link; that was completely new to them. And so on. Beliving that youngsters know memory management because you stress to them what comes up (of malloc) must come down (to free) doesn't teach them how memory is managed. They know of constructors and destructors, but not of the code behind those. And seriously: Programmers haven't had to understand compiler code generation and hardware addressing modes for a generation. Why should the average student have to know about buddy allocation an firstfit/bestfit and memory compaction, more than of different instruction set addressing methods? Students are relieved of understanding jump instructions by high level 'for' and 'while' loops and switch statements. There is no real reason why they should spend much more attention to memory management (until they become far more advanced). The only 'excuse' is that when programming in C++, you certainly should know it! In languages with a

                                  J Offline
                                  J Offline
                                  Joe Woodbury
                                  wrote on last edited by
                                  #39

                                  Member 7989122 wrote:

                                  I learned OO concepts by studying how the C++ compiler produced K&R C source code that could be compiled on any machine.

                                  I learned C by looking at the assembly code produced by Turbo C. (On day 2 I realized that C is just a really nice macro-assembler!)

                                  Member 7989122 wrote:

                                  Fifteen years ago I gave up my confidence in assembler code for fine tuning,

                                  About 20 years for me, when I was able to get a wave compressor to run within 10% of the speed of my assembly code. I've revisited assembly to write bootstrap code and to see what code is sometimes really doing, but otherwise I've only "used" it with some SSE intrinsics.

                                  Member 7989122 wrote:

                                  memory management is the responsibility of the runtime system

                                  But at least you know the implications of large allocations (in .NET) and why not to do "stringval += something" in a loop!

                                  1 Reply Last reply
                                  0
                                  • S sammygirl

                                    Where would you recommend a beginner to start in programming? I do have a brief understanding of these languages but need help choosing which is the most skillful and practical in the real world to learn and put to use? I want to do something related solving, building, not just dealing with data. I want to see creations come to life. 1.Python 2.Php 3.HTML/CSS 4.Javaschript Which shall I choose?

                                    J Offline
                                    J Offline
                                    Joe Woodbury
                                    wrote on last edited by
                                    #40

                                    My two youngest took a class at Utah Valley University called "CS 1030 Foundations of Computer Science". It starts with the real basics--what is a hard disk, what is memory and so on. By about the halfway mark, they started rudimentary C# programming. I don't know your age, but my daughter took this class in high school through an extension program (where she could get both high school and college credit.) Check with your local university or community college to see if they have a similar course. They may also have an online version. Stanford has free online courses: (Stanford University • Free Online Courses and MOOCs | Class Central[^]). Anyone taken any of these? EDIT: This looks very similar to the class my kids took: Reviews for Computer Science 101 from Stanford OpenEdx | Class Central[^]

                                    1 Reply Last reply
                                    0
                                    • J Joe Woodbury

                                      But the thing is, ALL programming has pointers at the core, even if we pretend they are something different. (Of course, pointers in C can get very out-of-hand. If I see something like ***pointer[offset], my eyes glaze over.)

                                      K Offline
                                      K Offline
                                      KBZX5000
                                      wrote on last edited by
                                      #41

                                      At that age, it was a brand new concept I couldn't relate to anything. When I understood the "how", I did still question the "why" for many years, up until the point where I learned about CPU-registers. At it's core, it's a conceptual necessity based on the way we build our chips. Even today I still think pointers are fundamentally pointless. Heh. ;P

                                      1 Reply Last reply
                                      0
                                      • K kordaff

                                        But definitely not that last huh, unless your job title now has 'of sales' in it =)

                                        K Offline
                                        K Offline
                                        KBZX5000
                                        wrote on last edited by
                                        #42

                                        Wait, are you referring to cursing the gods? I'm not into religion really. I get the appeal, see the merit, but the custodians for each religion register as a threat to me. I only appeal to the gods because it's biologically wired into human nature, and I'm not so obtuse as to fight my own nature. It's stock-OS brain functionality. I'm not wasting any of that.

                                        1 Reply Last reply
                                        0
                                        • J Joe Woodbury

                                          KBZX5000 wrote:

                                          and debug your code

                                          Still surprised at how many developers don't know how to effectively debug code. During my career, I've run across more than one "experienced [in years] developer who didn't know how to run a debugger and so used a form of console output and/or logs.

                                          K Offline
                                          K Offline
                                          KBZX5000
                                          wrote on last edited by
                                          #43

                                          That made me laugh. It's funny because it's true. Debugging and reading the damn errors you get are essential skills beginners often don't see. It does tick me off immensely when a developers ignores every error message / log and starts speculating on what went wrong instead. It usually end up with me yelling at them to: A) become literate B) investigate "what the words mean" C) do their damn job Pet peeves.

                                          1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular
                                          • World
                                          • Users
                                          • Groups