I agree with this though I mentioned computer science fundamentals only because ultimately, if a beginner wants to understand what's going on, a rigorous path to take is learning a little theory along with trying to hack on a language. Certainly C# and higher level languages have abstracted away much of the complexities of computing, but a little theory goes a long way for some people from what I've experienced rather than typing into an IDE and hitting compile (and repeat until frustration sets in). On 7/28/10, Jamal Mazrui <empower@xxxxxxxxx> wrote: > I also meant to say that a beginner who asks about a starting language > on this list is probably not a computer science major wanting to learn > the theory and structure of computers and operating systems. Rather, > they are probably a self-taught, part-time learner. Even CS majors > usually start with Java these days rather than C, avoiding the > nightmares of memory management. > > Jamal > > On 7/28/2010 8:18 AM, Jamal Mazrui wrote: >> I completely agree. Just as it became generally no longer necessary to >> learn about manipulating computer registers in assembler, it is no >> longer necessary, in general, to learn about the memory management that >> C requires. It is not helpful to send a beginner down the minefield of C >> or C++ in the belief that it will build their character. I think it is >> better to start with a language that is simpler and more forgiving, thus >> giving them the experience of successful programming, including simple >> GUIs after starting with console programs (hardly anyone develops a GUI >> with native C anymore). >> >> Building successful, genuinely useful programs increases one's >> confidence and passion about the power of programming. Tripping over >> every other step discourages one. I started with higher level languages, >> have gone as low as C# afterward, and been gratified by the results of >> that path. >> >> I recommend that beginners start with AutoIT, Visual Basic .NET, Python, >> or Ruby. Each of these has pros and cons, and I wish there was a single >> language that combined the best of them. As the Sodbeans project grows >> from experience, a beginner should also consider that environment. >> >> Jamal >> >> On 7/27/2010 3:22 PM, Jared Wright wrote: >>> I understand this prospective and started myself on C++, but think >>> there is a certain mindset that benefits from learning certain auxiliary >>> features later if possible. Think of it like a video game: the video >>> game only teaches you the gameplay elements that you need to progress to >>> the next level and teaches you more advanced concepts when a need for >>> their understanding arises. I think it's no secret that we learn faster >>> and in more useful ways in a video game setting than in the more >>> traditional academia computer science and so many other fields force >>> down students' throats. >>> >>> Additionally, C++ is less used now for basic end user applications like >>> those you start programming with anyway. I think something like Perl or >>> Python is both a better initial launchpad as well as more practical in >>> the industry moving forward. You don't even really HAVE to learn C++ >>> now, learning C# is almost more important. Yes you learn more about deep >>> programming concepts learning with it, but follow that logic and you >>> should learn in machine code, no? Even ten years ago C++ was such a >>> common language for so many types of programs. WE didn't have the nice >>> scripting language wrappers for low level functions that we enjoy now. >>> It made sense to learn it out of the gate, because it probably wasn't >>> going to be too long before you truly needed to write something real in >>> C++. Now its uses are more specialized, (and I'm talking relative to C++ >>> ten years ago here) and I think this somewhat jeopardizes it as a good >>> starting language. Just my thoughts, of course. >>> >>> On 07/27/2010 12:46 PM, Tyler Littlefield wrote: >>>> Why something "forgivving," though? IMO it's much easier to learn with >>>> something strict and move to other languages; not only will you code >>>> better, but you will understand more about what's going on, rather >>>> than just accept the fact that it does what you want however you may >>>> write it. >>>> Thanks, >>>> Tyler Littlefield >>>> http://tds-solutions.net >>>> Twitter: sorressean >>>> >>>> On Jul 27, 2010, at 8:16 AM, Alex Hall wrote: >>>> >>>>> JS because it is, as I said, quite forgiving, and it lets you practice >>>>> basics like looping and conditions without needing to worry about data >>>>> types or managing projects in a massive IDE. I do not recommend giving >>>>> up completely, rather, use another language to pin down the basics, >>>>> get good at that language, then come back to cpp to continue learning >>>>> it now that you have the concepts of OOP in your mind. >>>>> >>>>> On 7/27/10, Tyler Littlefield<tyler@xxxxxxxxxxxxx> wrote: >>>>>> javascript? Seriously? python was a good solution though, you just >>>>>> need to >>>>>> get used to indentation. Better to keep slogging along with cpp >>>>>> than to >>>>>> switch half way through, because essentially your just giving up on >>>>>> something. >>>>>> Thanks, >>>>>> Tyler Littlefield >>>>>> http://tds-solutions.net >>>>>> Twitter: sorressean >>>>>> >>>>>> On Jul 27, 2010, at 8:09 AM, Alex Hall wrote: >>>>>> >>>>>>> If you want to try programming, I recommend either Javascript (a web >>>>>>> language, but it is forgiving and easy to understand) or Python, >>>>>>> which >>>>>>> is, in my opinion, a lot easier than cpp. I definitely do not >>>>>>> recommend giving up. As Tyler said, everyone who learns to program >>>>>>> has >>>>>>> a rough time of it at first, but eventually you get better and learn >>>>>>> from past mistakes, and learning one language that you find you >>>>>>> like a >>>>>>> lot will help you learn other languages in the future, since they all >>>>>>> have the underlying principles of looping, conditions, functions, and >>>>>>> so on, though they all implement these in different ways. >>>>>>> >>>>>>> On 7/27/10, Tyler Littlefield<tyler@xxxxxxxxxxxxx> wrote: >>>>>>>> I guess, there is a better analogy. Nothing comes to you easy; you >>>>>>>> need >>>>>>>> to >>>>>>>> crawl before you walk, walk before you run. Look at it like >>>>>>>> playing an >>>>>>>> instrument. You don't just sit down and pick up a complex song in 5 >>>>>>>> minutes. >>>>>>>> Something that may help you is to go go look at code that does >>>>>>>> what you >>>>>>>> want. Google for like "c++ elseif" and see what pops up. >>>>>>>> Thanks, >>>>>>>> Tyler Littlefield >>>>>>>> http://tds-solutions.net >>>>>>>> Twitter: sorressean >>>>>>>> >>>>>>>> On Jul 27, 2010, at 7:55 AM, Tyler Littlefield wrote: >>>>>>>> >>>>>>>>> If you want to give up after the first few syntax errors, go for >>>>>>>>> it. >>>>>>>>> Otherwise, keep working, your going through what everyone who >>>>>>>>> learns c++ >>>>>>>>> did, and you'll get it. >>>>>>>>> Thanks, >>>>>>>>> Tyler Littlefield >>>>>>>>> http://tds-solutions.net >>>>>>>>> Twitter: sorressean >>>>>>>>> >>>>>>>>> On Jul 27, 2010, at 7:52 AM, Jes wrote: >>>>>>>>> >>>>>>>>>> Lol thought I'd put a humorous subject in there to try and lift my >>>>>>>>>> spirits a little bit. I've been working on a project for five days >>>>>>>>>> straight, sacrificing sleep and other stuff to get the stupid >>>>>>>>>> thing >>>>>>>>>> done, >>>>>>>>>> and I've decided that while I like programming, C++ is a bit to >>>>>>>>>> complicated for me at this point. I am a musician, so after I >>>>>>>>>> get this >>>>>>>>>> beast of an assignment done, I'm divorcing C++ and moving back >>>>>>>>>> to music >>>>>>>>>> for a bit. Audio editors and sequencers all do whatever I tell >>>>>>>>>> them >>>>>>>>>> too, >>>>>>>>>> they don't bitch at me like M S Visual Studio or GCC. >>>>>>>>>> As the average pc user declares, "They, just, work. " >>>>>>>>>> Grin. I won't be able to make anything more than simple >>>>>>>>>> programs, no >>>>>>>>>> matter how much I like programming. >>>>>>>>>> >>>>>>>>>> __________ >>>>>>>>>> View the list's information and change your settings at >>>>>>>>>> //www.freelists.org/list/programmingblind >>>>>>>>>> >>>>>>>>> __________ >>>>>>>>> View the list's information and change your settings at >>>>>>>>> //www.freelists.org/list/programmingblind >>>>>>>>> >>>>>>>> __________ >>>>>>>> View the list's information and change your settings at >>>>>>>> //www.freelists.org/list/programmingblind >>>>>>>> >>>>>>>> >>>>>>> >>>>>>> -- >>>>>>> Have a great day, >>>>>>> Alex (msg sent from GMail website) >>>>>>> mehgcap@xxxxxxxxx; http://www.facebook.com/mehgcap >>>>>>> __________ >>>>>>> View the list's information and change your settings at >>>>>>> //www.freelists.org/list/programmingblind >>>>>>> >>>>>> __________ >>>>>> View the list's information and change your settings at >>>>>> //www.freelists.org/list/programmingblind >>>>>> >>>>>> >>>>> >>>>> -- >>>>> Have a great day, >>>>> Alex (msg sent from GMail website) >>>>> mehgcap@xxxxxxxxx; http://www.facebook.com/mehgcap >>>>> __________ >>>>> View the list's information and change your settings at >>>>> //www.freelists.org/list/programmingblind >>>>> >>>> __________ >>>> View the list's information and change your settings at >>>> //www.freelists.org/list/programmingblind >>>> >>> >>> __________ >>> View the list's information and change your settings at >>> //www.freelists.org/list/programmingblind >>> >> __________ >> View the list's information and change your settings at >> //www.freelists.org/list/programmingblind >> > __________ > View the list's information and change your settings at > //www.freelists.org/list/programmingblind > > __________ View the list's information and change your settings at //www.freelists.org/list/programmingblind