Question

Programming language for hobby?

Asked by: neopolitan

My friend who is about 46 is a doctor (MD) and has a good practice. Recently he got an assistant and therefore has managed to get plenty of spare time. He wants to try his longterm ambition, to learn a programming language. Jokingly he said that he would like to write an operating system to replace windows. i do not think he has a definite objective. Probably he knows as much of programming as a monkey. However, I appreciate his enthusiasm. Please bear in mind that he does not want this to find a job or for living. He wants to learn ONE language only. Myself, not being an expert on this, would like some answers for these:

1.What good it will do to learn a language as a hobby?
2.Which one language would you recommend?
3.C# or Ruby particularly recommended?
4.Any use learning a web language?

This Question has been solved and asker verified All Experts Exchange premium technology solutions are available to subscription members.

Subscribe now for full access to Experts Exchange and get

Instant Access to this Solution

  • Plus...
  • 30 Day FREE access, no risk, no obligation
  • Collaborate with the world's top tech experts
  • Unlimited access to our exclusive solution database
  • Never be left without tech help again

Subscribe Now

Asked On
2006-12-23 at 02:13:23ID22102232
Tags

programming

,

hobby

,

language

Topics

Miscellaneous Programming

,

Kernel And Operating System Specific Programming

Participating Experts
10
Points
500
Comments
27

Trusted by hundreds of thousands everyday for fast, accurate and reliable tech support.

  • "The time we save is the biggest benefit of Experts Exchange to Warner Bros. What could take multiple guys 2 hours or more each to find is accessed in around 15 minutes on Experts Exchange." Mike Kapnisakis, Warner Bros.
  • "Our team likes having a resource that is more secure than just using Google and most experts using this service really know their stuff. It's nice to look here first versus using Google." Dayna Sellner, Lockheed Martin
  • "Anytime that I've been stumped with a problem, 9 out of 10 times Experts Exchange has either the accepted solution or an open discussion of the potential solution to the problem." Kenny Red, eBay Inc.

See what Experts Exchange can do for you.

Got a question?

We've got the answer.

Experts Exchange has been collecting answers to technology questions since 1996…3 million and counting! If you have a question, chances are we already have your answer.

Screenshot of Experts Exchange Knowledgebase

Need individual assistance?

Our experts are ready to help.

If you can't find the exact answer you're looking for, ask our exclusive community of 50,000 experts. You’ll get a personalized answer from a trusted professional.

Screenshot of Experts Exchange Knowledgebase

Want to learn from the best?

Read articles from industry experts.

Thousands of free tech tips, tricks, how-to’s and tutorials are available in our peer reviewed articles section. See for yourself how smart our experts are, no login required.

Screenshot of an Article

Working on a long term project?

Store your work and research.

Save solutions to your questions, answers you’ve discovered through searching plus helpful articles in your personal knowledgebase for easy future access.

Screenshot of Experts Exchange Knowledgebase

Access the answers to your technology questions today.

Subscribe Now

30-day free trial. Register in 60 seconds.

What Makes Experts Exchange Unique?

Members of the expert community talk about why the experience at Experts Exchange is different than what you will find anywhere else.

Trusted by the world's most respected brands.

image of each brand's logo

Faithfully serving IT professionals since 1996.

Experts Exchange Logo

Try it out and discover for yourself.

Subscribe Now

30-day free trial. Register in 60 seconds.

Related Solutions

    Free Tech Articles

    1. WARNING: 5 Reasons why you should NEVER fix a computer for free.
      It is in our nature to love the puzzle. We are obsessed. The lot of us. We love puzzles. We love the challenge. We thrive on finding the answer. We hate disarray. It bothers us deep in our soul. W...
    2. SCCM OSD Basic troubleshooting
      SCCM 2007 OSD is a fantastic way to deploy operating systems, however, like most things SCCM issues can sometimes be difficult to resolve due to the sheer volume of logs to sift through and the dispe...
    3. Migrate Small Business Server 2003 to Exchange 2010 and Windows 2008 R2
      This guide is intended to provide step by step instructions on how to migrate from Small Business Server 2003 to Windows 2008 R2 with Exchange 2010. For this migration to work you will need the fo...
    4. Create a Win7 Gadget
      This article shows you how to create a simple "Gadget" -- a sort of mini-application supported by Windows 7 and Vista. Gadgets can be dropped anywhere on the desktop to provide instant information, ...
    5. Outlook continually prompting for username and password
      There have been a lot of questions recently regarding Outlook prompting for a username and password whilst using Exchange 2007. There are a few reasons why this would happen and I will try to cover t...
    6. Backup Exchange 2010 Information Store using Windows Backup
      There seems to be quite a lot of confusion around the ability to backup Exchange 2010 using the built in Windows Backup feature. This stems from the omission of this feature prior to Exchange 2007 s...

    Cloud Class Webinars

    1. Avoiding Bugs in Microsoft Access
      Alison Balter takes and in-depth look at avoiding bugs in Access. In this webinar you will learn about using the immediate window to debug your applications, invoking the debugger, using breakpoints to troubleshoot, stepping through code, setting the next statement to execute, ...
    2. Top 10 Best New Features in Visio 2010
      Scott Helmers gives live demonstrations of the top 10 new features in Visio 2010. This webinar will teach you how to create compelling diagrams by adding shapes to the page with a single click, linking the shapes in a diagram to data in Excel (or SQL Server, or SharePoint), ...
    3. IT Consultant Business Secrets Revealed
      Michael Munger, Experts Exchange tech pro and IT consultant, pulls back the curtain on his very successful businesses and answers question on every IT consultant and business owner should know about. He shares secrets on what he did to solve the 5 most common problems in IT, ...
    4. Disaster Recovery and Business Continuity
      Quest CTO, Mike Billon, gives an overview of the steps involved in building a dunamic disaster recovery plan. Through case studies and an examination of software/hardware tooles for monitoring and testing, you'll gain a better understandin of where you are, where you want ...
    5. Organize Your Visio Diagrams with Containers and Lists
      Scott Helmers uses cross functional flowcharts, wireframe diagrams, data graphic legends and seating charts to teach you: how to ustilize all three new structured diagram components in Visio 2010, the best practices for organizeing shapes in previous version of Visio, how to organize ...
    6. How to Us Objects, Properties, Events and Methods in Microsoft Access
      Alison Dalter gives an in-depbth look at objects, properties, events and methods in Microsoft Access. In this webinar you will learn about using the object browser, referring to objects, working with properties and methods, working with object variables, understanding the ...

    Join the Community

    Give a Little. Get a Lot.

    Join the community of experts here and help other tech pros by answering question in your area of expertise. You can earn FREE access to all Experts Exchange's premium features and resources.

    Join the Community

    Answers

     

    by: ZeliciaPosted on 2006-12-23 at 02:29:21ID: 18191194

    Hi neopolitan,
    Personally, im not the worlds greatest programmer (I only know a bit of X86 assembly)
    but i have tried enough languages to at least try to answer your question :)

    1)A programming language you have for a hobby can have a LOT of advantages. For example, you can write small little applications that suite your needs.
    I have seem people writings apps to keep track of their CDs, Programs that remind them of appointments, small computer games; You name it.
    Being able to write them gives you some extra power on what you can do with your pc; After all, you can make it yourself.

    2)The amount of languages out there is VERY high. And there are a lot of differences between them.
    C++/C# : C++ Is one of the most powerfull languages around, but is also one of the hardest to learn.
    it CAN be learned as a total beginner, but i would not recommend that.

    Basic/Delphi : Basic and Delphi are more simple languages. You can write very nice programs with them, but they are generally
    regarded as being a little less powerfull. Nevertheless, they are about the most easy languages to pick up. I recommend it as a start.

    X86: Only listing this since i mentioned it. X86 is machine language, and its not something you wish to use for writing long windows applications :)
    Its not exactly easy, and it requires a LOT of typing. But since its the CPUs native language, it can be regarded as quite powerfull.

    Java/Javascript: One of the more "simple" languages. Java is not used often for programming offline programs, but its quite handy if you ever consider building a website.

    If i where to recommend one i would recommend Basic, since its widly supported and not that hard to learn.  

    3) I never used ruby so i cant answer that. The C# part i can answer though. As mentioned before, the C language is
    capable of a lot, but i found it quite hard to master. If you want quick results without having to read a lot, go with Basic.

    4) Of course. A web language is used (You guess it) for making websites, Server applications and so on. If your hobby
    is building websites, learning a web language can increase the quality of your website both visual and functional.

    I hope this helps,
    ~Zelicia

     

    by: AlexNekPosted on 2006-12-23 at 04:50:01ID: 18191392

    1,2. I would reccomend Pascal as easy to learn language concept.
    3. C# is harder to learn but easy to use. Ruby is good and powerfull but hard to debug.
    4. Then C# could help.
    Moustly they must not only learn a language, he must to learn first how to write a good programm.

     

    by: neopolitanPosted on 2006-12-23 at 07:11:36ID: 18191932

    Thanks for your prompt replies. Naturally I did look up somewhat in the web about these arguments. I do agree with Zelicia about the simpleness of basic but it is not all inclusive. Java, though good and popular may become outdated like C. My friend probably would not think of machine/assembly languages. AlexNek has given an opinion that was more similar to mine. I was more for recommending ruby along with ruby on rails and radrails IDSE. However I do think about bugs and the relative lack of support for this language, though I see a future for this. C# appeared to be in the forefront though it is microsoft dependent to an extent.

    I will leave it open till after Christmas to see if some other comments/suggestions do come.

     

    by: PissingSkunkPosted on 2006-12-23 at 07:38:54ID: 18192030

    Interesting to see a programming language as a hobby :-)
    1.What good it will do to learn a language as a hobby?
    Nothing good, I don't see a programming language as an interesting object, it's sometimes a necessity to achieve the goal of the creation of a program that will support a user in making their work easier/better.
    Indeed when your friend want's to create a new OS, a suitable language will be e.g. C++ or Assembler, but both of them require a rather long learning curve and a lot of machine internal knowledge.
    But always ask yourself "Why". There are multiple OS-ses at the moment and creating one by yourself will take years of coding. Most of them have been developed by large teams of specialists taking many months.....
    But when your friend is interested in the creation of applications for users (or himself), he'll need to realize that there are three components:
    a) An interface for the user to interact (forms, reports, etc)
    b) A storage of the data to "remember" what has been entered (database)
    c) A language (or queries and/or macro's) for manipulating the data.
    2.Which one language would you recommend?
    I would advise for application building to use an integrated database tool like MS Access or Borland's Delphi with MySQL.
    Another option for applications is to learn a weblanguage (Java, Php, etc) and use a (free) database like MySQL to store the data.
    3.C# or Ruby particularly recommended?
    I think C# is too hard for a beginner without knowledge of the computer internals and Ruby I don't know :-)
    4.Any use learning a web language?
    Thinks so, but will require the creation of a website and learning the web tooling and getting a grasp of things like CSS, html, xml, etc.

    Basic question is what results your friend want to achieve by using the language.
    The language is only a means and no objective, transporting letters can be done with a bike, but when you want to start a removal company it's better to use a van :-)

    PS

     

    by: OkigirePosted on 2006-12-23 at 11:53:47ID: 18192611

    Here are my answers to your questions... some are similar to what was mentioned but instead of picking and choosing, here are my thoughts:

    1.What good it will do to learn a language as a hobby?
     - Some people survive well without knowing any language, but they can't create their own programs.
     - Knowing a language lets you create basic programs/portals/areas that help you automate things and accomlish tasks easier.
     - Language as a hobby lets you do something productive with your mind, rather than watching TV...um... ;)

    2.Which one language would you recommend?
     - Any free, publically accessible, and current language should do.  Three that come to mind are: Java, Visual ___ (C#/C++/etc), and PHP (web language).
     - These three are relatively easy to learn and are popular, leading way to easy access to an online community to help with any bugs, problems, etc.  details follow:

    JAVA
     - great because it's cross-platform, works on multiple operating systems.
     - it's object-oriented, and has auto garbage collection for memory management, etc
     - very powerful and flexible, with backing from SUN

    VISUAL ______
     - Comes in 3 flavours: C#, C++, J#
     - from Microsoft, pushing people to learn and offer free Express versions and tutorials for learning!
     - visual programming makes it easy to learn and very flexible
    http://msdn.microsoft.com/vstudio/express/default.aspx

    PHP
     - a web-based language, but very easy to use/learn with a great community as well
     - very popular and accessible since it's installed on most web servers
     - PHP is often coupled with MySQL, which is a free and powerful database application
    http://www.php.net

    3.C# or Ruby particularly recommended?
     - I would go with C#, but that's a personal preference.  Others recommend otherwise, but the C-family of languages is popular and could be useful later on.  Also, Microsoft has a free Express version of their C# development program along with tutorials/etc to help get you started.

    4.Any use learning a web language?
     - Yes... the web is a powerful tool, just think of Google!  Some large companies like their applications on the web because it enables everybody to access them.  There's no need of worrying about installations, reinstallations with updated software/etc.  PHP is a great web language that's free... you can also build Java applications to run on the web as well.

     

    by: HKComputerPosted on 2006-12-23 at 18:30:36ID: 18193282

    I don't have as much experience as those who have already given their opinion. So I am not writing as an authority on the matter.

    I think programming is a great way to stimulate the mind and is really a great hobby.

    As far as the programming language, I recommend Microsoft Access, Visual Basic 6 or Visual Basic .Net.  Here are some details, pros and cons.

    Details
    Learning to use Microsoft Access is great for a business person and would probably prove to be very useful for a doctor. And once you master the code used in Access, known as VBA (Visual Basic for Applications), you'll be able to carry a lot of your knowledge over to Visual Basic 6 and/or Visual Basic .Net. Learning Access gives you a pretty good understanding on how data is stored, queried, etc. Data storage is an important thing with most any programming and web programming is not exempt.

    Please be aware that Visual Basic .Net is quite a bit different than VBA and VB6. Many of the concepts will still apply but much of the objects and syntax is different.

    Here are some pros to VB/VB related languages:
    VB languages are among the easiest to learn
    The new programmer will likely make it through the challenge of learning VB type languages because he will see results sooner
    There's a tremendous wealth of information on the Internet, and particularly Experts-Exchange, for both VB6 and VBA.
    VB6, VBA, and other "Basic" languages are generally very similar, allowing you to use your skills and knowledge across multiple fields.

    Here are some cons to VB and VB related languages:
    Unfortunately this family of languages is very dependant on Microsoft Windows.
    These languages (except VB .NET) are not truly Object Oriented Languages
    These languages are somewhat regarded as underdogs in the software community. They are generally easy to learn and easy to be sloppy with, often producing nearly unmanageable and/or bloated code when projects get large.


    Web programming is very useful, but a web programmer will likely need to understand the most different technologies/languages. Many web programmers have to know at least a little about each of the following: Databases, Data Access using ADO, HTML/XHTML, XML, CSS, ASP and/or PHP, Java, Javascript, jscript and/or vbscript

     

    by: neopolitanPosted on 2006-12-24 at 08:13:32ID: 18194424

    An interesting answer from P-Skunk. The operating system bit is a joke- no one would be serious enough to think that they could be another B-Gates or L. Torvalds as an amateur. My feeling is that my good friend was fed up with some of his office software and had been thinking of writing some on his own. If someone is upto it, what does it matter if c# is hard or not? Problem is, would microsoft at some stage condemn it and would it be redundant and how good it is going to be a base language for writing applications?

    Okigire is philosophical; it is someone's intellectual pursuit and I would encourage it. Am I correct in guessing that you would suggest c# together with PHP?

    Suggestion from HK computer is good, but access is not a language like C, is it? When I read a bit, I found the recommendation by a lot of people that C# is more powerful than VB.net, though VB is simpler and easier. As I had mentioned before, my friend is not a serious developer to go for a lot of languages. Also does not care about linux etc (windows OK).

    All good replies.

     

    by: PissingSkunkPosted on 2006-12-24 at 09:37:07ID: 18194614

    My point was that it's not the language, but the target.
    Who's interested in a new Contacts/Agenda/Email program when there are loads of them. When your friend wan't to solve an office software problem, then Access migh be a good way to start with little programming effort. It's well prepared to cooperate with MS Word, MS Excel and MS Outlook and MS Access 2007 (Vista) will cooperate even better.
    I've been working with 4-GL tools that required table definitions and business rules to generate working COBOL program's to realize the application. The developers learned using that tool instead of COBOL...

    MS-Access is a combination of three part, a database to store the data, forms to manipulate the data and reports to produce output. Most of the code is "hidden" within Access and created by specifing properties or using wizards, but VBA (Visual Basic for Appplications) is a real language allowing you to code the parts not covered by MS Accessfunctions and wizards.
    For these parts you can also learn a different language like Java/Php/CSS/etc for forms, SQL for datamanipulation and COBOL/Assembler/VisualBasic/CrystalReports/etc for output. SQL is a rather universal one for datamanipulation and will be used in nearly every data processing application.

    So basically to learn coding Access might be a good option as lots of the development effort is already supported by wizards, but it's not suitable for heavy-duty applications for hundreds of users. Take some 10 (simultaneous) users as a max.

    Languages like C# are requiring a lot of additional knowledge and that might be fustrating when starting coding and seeing little progress. But for heavy-duty solutions it's superior.

    PS

     

    by: ZeliciaPosted on 2006-12-24 at 10:02:17ID: 18194649

    Well, this is actually quite interesting.

    Whats i find interesting about this, is the fundemental difference in reasons why someone should try to so some programming.
    If im correctly getting your point P-Skunk(Tell me if im not) is that programming as a hobby(At least harder languages) is not word the effort.
    and programming is just something that has to be learned in order to a certain task like a job. And that learning it is not the world most fun thing.
    (Am i correct?)

    For me personal programming is just a hobby. Sure, it helps me with my everyday job, but in my spare time im learning to program X86 Assembly,
    reading books about computer viruses, Read technical data on how firewalls work; In general, everything that has something to do with computer security/programming.
    If i use 5% of everything i read in my every day job, its a lot. i guess everyone has a different thing they enjoy in their spare time :)

    Is it worth to do a little programming as a hobby?
    In my opinion it is, since it gives you a better understanding of a computer in general, and it allows you to write your own custom programs that make life easier.
    What you should know however, is that starting with it will most likely be quite frustrating. The first programs you will learn to write are probably "Hello World" variants;
    Just a program that writes hello world on the screen. After that you will learn  to alter it to create a different text color, font, and maybe a colored box around it. As you
    understand, this are NOT the world most inspirating things to do.

    Also, you will most likely be reading a whole lot of manuals to get some understanding why something is happening (At least when using a hard language like C).
    Also, its quite likely that you will look at a screen or hours with a program that does not work, not knowing whats wrong
    (Untill you see you wrote Mainloop instead of mainloop (Small m), or you notice you forgot a ;. or closed some brackets in a wrong order).
    Again, starting it takes patience, and can at time be quite mind numbling (Hello world version 21, green flashing worlds that move on the screen)

    Hope this helps,
    ~Zelicia



     

    by: PissingSkunkPosted on 2006-12-24 at 10:44:29ID: 18194699

    Interesting comment Zelicia, I did assembler (being a 2nd generation language), COBOL/QBasic/etc (being 3rd GL) and multiple 4-GL's like Sapiens/CSP/etc. For me these languages support all one objective: "making life easier for users"

    I always need an objective to start coding. The "Hello world" sample is a nice one, after version 21 you'll want a new challenge. It's always some "why can't I....." that makes me start coding.

    The hours of working with no result when tracing (syntax) errors are on one hand fustrating, but when the application is flawless, I lose interest...
    The best reward for me is to hear from a user "Your application is a real help and making my work faster and easier"

    PS

     

    by: ZeliciaPosted on 2006-12-24 at 11:08:02ID: 18194727

    I think you just outlined a few of the most important characteristics  a programmer/computer expert must have P-Skunk.

    First of all is that you must not give up easily, since learning and mastering programming language is definatly not easy. If you want results right away, and get frustrated when things don't work like you want to, its defiantly not something for you.

    Second, you must indeed like a challenge. My own continuous challenge is becoming better at my hobby of computer security, and thats something i have been busy with for years now. And still, im far away from knowing everything/being able to do everything. But this is also what makes it fun for me. actually, its just like EE. I can find a fresh bunch of questions every day here, and that way i can both expand my knowledge and help people. What this has to do with programming? Its quite the same actually. You are almost never done with learning a programming language. There are always new things you can try, and there is always something new you can learn. But if you don't like a challenge, you will probably get stuck at a certain level of skill, simply because only so much can be learned from books. Your own programs are unique, you can find programs that are a bit like them, but afetr all, its you who has to do it.

    And third, you need a bit of imagination, and a tendency to want perfection. Just have a look at all the programs out there. There are a lot of simular programs; Programs like word that process text, programs like Firefox to browse the web and so on. Have you ever tried Tabs in Firefox? If not, then i explain; Its a handy mechanism that lets you display more pages in the same browser window, along with an easy way to switch pages. Its a great feature, but it required some imagination to think of it. Now, IE7 also includes tabs, but i doubt they would have been there if Firefox would not have included them. Easy to see: This is imagination. And a tendancy for perfection. After all, you could view web pages without them. But it makes life way easier, so the program is a lot better with then without.

    And as a last line:
    P-Skunk wrote: The best reward for me is to hear from a user "Your application is a real help and making my work faster and easier"
    I cant agree more on that. Even when working here at EE the biggest rewards are never the points, its the fact that i could help someone, and get a thank you from them :) (And of course, i help myself, since i learn from problems i never saw before.

    Merry Christmas and a happy New Year everyone! :D
    ~Zelicia

     

    by: PissingSkunkPosted on 2006-12-24 at 12:13:31ID: 18194830

    You're right about the reward Zelicia, you learn a lot by helping others.
    For me it's almost a Contradictio in Terminus, the more I learn the more I realise there even more I don't know :-)

    Best Whishes 2 U 2 :-)

    PS

     

    by: HKComputerPosted on 2006-12-24 at 12:32:49ID: 18194875

    I agree with the last couple posts, and I would even question how well someone can learn a programming language without genuine inspiration.

    My original inspiration came when working with a Foxpro Database application that was clumsy and often inadequate. Many times I asked myself how this or that worked inside the application. Early on, I thought everything about programming anything must be really difficult. When I started learning MS Access and one by one the lights came on, I was so amazed at how easy the concepts are. And yet the challenge has always been great enough to keep me fascinated, asking more questions, and always learning something new.

    Now contradicting the first line of my post, I think that interest and even inspiration builds the more you learn. You see all the things you could do with your new knowledge and skills. And you can see how other people put their programs together, what they could have done different, etc.

    I'd venture to say that most people have an area in programming that might suit them better. I have no question that my interest lies in plain old boring database programming. Programming games or graphics would simply not be my thing. And I think I'd probably not have enough patience to work on assembly programming, operating systems, etc.

    I'd probably wonder if your doctor friend shouldn't try to choose something based at least a little bit on his interests. I tend to think that it's difficult to learn something without a need or strong interest.

     

    by: HKComputerPosted on 2006-12-24 at 13:11:29ID: 18194920

    PS already answered some of the questions about MS-Access and VB/VBA. I know I've posted quite a few times already but I've got just a few comments on it yet.

    MS Access does have stability issues when used in multi-user environments. That part should not be ignored. But someone who starts with Access can take a lot of his knowledge and move up to MS SQL server when he needs a data storage container that will handle more than 10 or 20 simultaneous users. Many web applications are a typical example of an application that needs to be fully scalable on a moment's notice, since you never know when your website will start getting more traffic.

    Please be aware that the wizards in Access are pretty lame. They are a start, but any serious developer will see very quickly that he cannot get the look and feel he needs without modifying the code. I hardly use any wizards at all in Access anymore, and go straight to the form's code modules instead. You may think that Access is not a language (and that is true (VBA is the language used to "extend" Access), or that it doesn't need code, but the whole truth of the matter is that to get anywhere in Access, it will require code and quite a bit of it. Most programmers using Access will learn how to use DAO (Data Access Objects), SQL (an invaluable "language" to know), variables, arrays, data types, If...Then...Else...End If statements, select case statements, While - Wend statements, and For - Next statements. All this is fun and challenging to master, not to mention that most or all of the concepts learned will apply in other languages.

    Access is pretty weak on client/server concepts because it doesn't require you to program that way. And it's pretty weak on Object Oriented Programming (OOP) because it doesn't require you to use objects the way some languages do, and further more it doesn't even fully support OOP to the fullest extent. This is true of Access and VB6.

     

    by: neopolitanPosted on 2006-12-25 at 04:02:52ID: 18195855

    I agree with Zelicia about the nature of programming. There is no reason why someone cannot take it up as a hobby. My friend would like to takeup a challenge, that is why the choice of going for some developmental language like C#. Problem is the time factor, can't do a lot more than one language or at the most two sequential ones. But as you have pointed out, there are languages like access which though not intellectually challenging are productive. I will definitely point out these facts.

    You guys know what you are talking about. These are indeed important points for a new programmer, whether hobbyist or professional.

    Have a nice Christmas everyone.

     

    by: adrpoPosted on 2006-12-25 at 18:11:47ID: 18196950


    Hi all,

    Well, I would say that learning a computer language is like learning another foreign language.

    The computer, right now is very stupid, let's face it. You have to tell it quite
    explicit how it should do the stuff you want. The AI field didn't deliver what they
    wanted so we're stuck with these damn stupid languages we have to learn in
    order to make the computer help us with the stuff we want.

    There are a lot of languages out there:
    - like Prolog comming from AI in which you can specify the problem and the computer should solve it.
    - functional languages comming from lamda calculus like Standard ML, Lisp, Haskell, OCaml, which are more appealing to people that are used to mathematics and functions.
    - object-oriented languages, the whole spectrum from Smalltalk, Java to C#.
    - scripting languages like perl, python, php, etc.

    Take a look here to see a bit of history:
    http://www.levenez.com/lang/history.html#04
    A bit of basics:
    http://en.wikipedia.org/wiki/Programming_language
    The language guide (cool stuff):
    http://www.engin.umd.umich.edu/CIS/course.des/cis400/
    About all these "Teach Yourself XOYZ in 7 Days" and how to learn programming:
    http://norvig.com/21-days.html
    More about the reasons on why learning a programming language:
    http://www.accu.org/resources/public/terse/learn.htm

    I think what is most important is to find the appropriate language for the person in question.
    If this is a hobby, then the person should like "the sound" of the language, as, for example, you preffer to learn french instead of chinese even thou' there are more chinese speaking people arround.
    I would say that the easyest way to learn something is by passion. This way you don't actually feel that you wasted the time you put in. Also, be prepared to waste some good hours/days/weeks/months/years on this and to be more stubborn than the computer :)

    Now let's get to your questions:
    1.What good it will do to learn a language as a hobby?
    - mind exercise, language and vocabulary expansion,
      weirdness factor, understand how the computer works actually,
      killing whatever you have left of your free time :)

    2.Which one language would you recommend?
    - that's a tricky one. i would say that no language is the final answer.
      the more you know the better you can approach a given problem
      with a specifc language designed for that problem.
      my prefference it towards functional languages because they can
      express more with less code. however the functional languages
      are harder to grasp for people used with imperative languages.
      also, to stare at half a page of code for half an hour to understand
      what it does is not that fun either :)

    3.C# or Ruby particularly recommended?
    - they are both ok. ruby is also a web language, so more opportunities
      to make the hobby public on the web :)

    4.Any use learning a web language?
    - web languages are no different than the normal ones. however there
      are some languages out there that were designed with the web in mind.
      learning a web language gives you more opportunities for playing arround.
      isn't more nice to expose your work on the web so other people can play
      with it?


    I would also think that some course lectures or a book about programming languages could
    be cool to read before getting your hands dirty with programming, as it gets you perspectives of why there are so many languages available and how they all map to the same stupid computer.

    There are a lot of environments available that makes programming easyer and I would recommend either Eclipse (for Java, C++, and a lot of other languages via plugins) http://www.eclipse.org or Visual Studio (for C, C++, C#).

    Merry Christmas and A Happy New Year!

    Cheers,
    za-k/

     

    by: neopolitanPosted on 2006-12-26 at 11:29:38ID: 18199282

    Thanks zak.
    When you say ruby has web in it, does it mean c# does not? Is .net  not for this purpose? Or does it mean one has to go for a separate language like PHP as I had asked earlier on for web applications?

     

    by: adrpoPosted on 2006-12-26 at 19:02:43ID: 18200861


    Hi,

    Of course C# can be used for web too via ASP.NET, but what I meant is
    that Ruby is far easyer to learn, because syntax doesn't get in the way of
    what you try to express. For example, you don't care about types.

    A quite good introductory tutorial to programming can be found here:
    http://pine.fm/LearnToProgram/
    They also have a book about it.

    Funny picture on the difference between Java technologies and Ruby on Rails :)
    http://www.antoniocangiano.com/articles/tag/einstein

    A bit about C#, ASP.NET vs. Ruby on Rails:
    http://groups-beta.google.com/group/comp.lang.ruby/msg/47655971c922b9e4

    Cheers,
    za-k/

     

    by: dameyPosted on 2006-12-28 at 02:36:46ID: 18207188

    Without a long explanation:  I assume that your friend is intelligent and wants more than a language to write in but a understanding of what people need or want.  

    For example he must have been frustrated with data during his years of practice and there is a tonne of data he wished he had at his fingertips throughout his career.  

    My suggestion is before he even attempts to learn a programming language is to figure out what he wants to program.  

    It may involve lots of data and how it is manipulated.  Maybe he wants to program a game or similar to "Operation" game on the computer in which case GDI would be the route.

    Hope fully I can help your friend explain what he wants further and I'd need more information but I could be a mentor to him.

    Please let him know that programming a new language is futile.

     

    by: HonorGodPosted on 2006-12-28 at 05:49:49ID: 18207608

     I'm quite surprised that it too so long for Python to be mentioned.
      (IMHO) It is an outstanding language, that is easy to learn because it is easy to read.

      There are a number of very good books on it, and the fact that an interpreter is available makes the "try as your learn" technique very powerful

      I like, no, make that love to program.  It is one of the things that I do for fun.
    As someone mentioned above, the more I learn, the more that I realize that I do not know.
    So, I am constantly reading text books, and code, and EE to see what I can learn.

      I can relate to the original question because 3 decades ago my dad did a similar thing.
    He wanted to see what this programming thing was all about, so decided to learn something.
    When he asked for my recommendation, I pointed him to Pascal.

      He pursued it for awhile, and then got frustrated with how picky the compiler was :-)
    and finally moved onto something else.

    Good luck

     

    by: SStoryPosted on 2006-12-28 at 13:48:08ID: 18210791

    VB.NET is a nice and powerful language, and IMHO easier to learn and use than C#.
    However, they are both similar.  If you go that route you will be limited to Microsoft platforms, unless you choose to go with the mono project which is not completely finished for vb. (not sure on c#).

    I used to enjoy Turbo Pascal years ago, but that was in the DOS days.  C/C++ are very powerful, and you can do almost anything, but unless you are very, very good, expect wading through 100's of error messages and such trying to figure out what you did wrong.  

    In reality it depends upon what you want to do and your past programming knowledge.

    If you want to do websites, then ASP allows dynamic pages, but isn't as robust as ASP.NET.  PHP is open source and works on most any platform (personally I'm not crazy about the syntax), but to each his own.

    Ruby seems pretty cool, but you will be diving into and learning some pretty complex object oriented ways of thinking and programming.  If you don't already know programming, you are a blank slate and don't have to unlearn anything in terms of programming, so just pick one and go for it.  If you don't like it pick another.

     

    by: neopolitanPosted on 2006-12-29 at 08:53:25ID: 18214958

    Damey, your advice is good, but once someone has decided to do some thing, I think it is difficult to convince once to abandon the idea! HonorGod, python is a good, simple with simple syntax and quick language, but is much slower due to it being of high level and is said to be difficult for larger programs. But it is worth considering and I will keep it in mind. Simple advice from SStory but I needed a clear guidance ( as I am aware of many points as mentioned above).

     

    by: AlexNekPosted on 2006-12-29 at 09:25:02ID: 18215161

    >Ruby seems pretty cool, but you will be diving into and learning some pretty complex object oriented ways of thinking and programming.
    Ruby only SEEMS pretty cool. I have the same idea when I saw it but after year of work all our programmers hate him.  First of all that is hard for debugging.
    I suggest start to learn object oriented way to programming because which language is used is not so important. He need to know some basic knowledge like variable, type of variabe, loop, if, function, function parameters and so on.

     

    by: neopolitanPosted on 2006-12-29 at 12:44:21ID: 18216277

    Funny, I got a good opinion on ruby from reading the net but now I am getting an impression from this page that it is not as good as people make it look!

     

    by: neopolitanPosted on 2007-01-01 at 03:33:34ID: 18223462

    All of you gave good answers and deserve 500 points each. Unfortunately, I have 500 poinks only and am forced to split it between you. I apologize for this but I chose one answer to accept because it came close to my observations.
    Thanks all for help.
    HAVE A HAPPY NEWYEAR!

     

    by: PissingSkunkPosted on 2007-01-01 at 03:37:50ID: 18223479

    Thanks for splitting neopolitan, and also the best wishes to you !

    PS

     

    by: gzmaskPosted on 2008-04-22 at 15:05:29ID: 21416008

    if he's my dad, I 'll only let him learn Ruby or Perl or Python and let him totally forgot the OS thing.

    20120131-EE-VQP-002

    3 Ways to Join

    30-Day Free Trial

    The Experts

    98% positive feedback on 31,087 answers since March 2000. angeliii is a Microsoft Most Valuable Professional for his work with MS SQL Server & Develoment.

    He has also proven his knowledge of Visual Basic Programming, PHP Scripting and Oracle Databases.

    The Experts

    97% positive feedback on 10,752 answers since July 2000. lrmoore has more than 18 years experience in the networking industry.

    The six-time Mircosoft MVPs specialties include firewalls, virtual private networking, and network management.

    Testimonials

    "...and excellent source for support... Kind of like having your very own IT dept." Electriciansnet

    Testimonials

    "I was apprehensive at signing up at first. However... it has already made my life as an IT administrator much easier." JaCrews

    Testimonials

    "WOW! You guys have great, active, and knowledgeable people on here." moore50

    Business Clients

    Business Clients

    In the Press

    "If you’ve got a question... Experts Exchange can supply an answer.”

    In the Press

    "...an invaluable aid for both IT professionals and those who require tech support."

    In the Press

    "where IT professionals provide quick answers on just about any topic"

    Business Account Plans

    Loading Advertisement...