|
Well, I am a pupil with the age of 16 and never learned any serious programming in school. I thaught myself (via internet and some books) six languages so far (VB.NET, C#, C, C++, some Python and Java). Unfortunatly, my grades in subjects such as german and english decreased because of that hobby. Nowadays, however, I do all my school work and only spend a little of my free-time with programming. I have no idea what I should study after school to be honest...
If I were you, I would actually focus on .NET languages because the .NET framework will more or less become cross-platform over the next years. But that's all I can tell you because I am, as far as I know, one of the youngest here on CodeProject
|
|
|
|
|
Niquo, thanks for the reply. I'm probably at the other end of the age spectrum here, probably even older than your parents.
It's good to see the insights of someone who is looking at the future of all this. They are much appreciated.
Take care. Study Hard! (Did that sound parental enough? )
cat fud heer
|
|
|
|
|
BiggerDon wrote: From there I started to learn VBA (I know, it's not as good as any other language a real programmer would use!) A programming language is nothing more than a tool used to solve a problem. If your problem is solved, you have nothing to "apologize" for.
BiggerDon wrote: Of course, I am interested in your opinions as to which language(s) to go after to build more knowledge and understanding, whether you think this is a fool's errand, etc etc. I am most interested in how you've gone about being self-educated in different languages and technologies. I personally think that learning a computer language without first learning programming principles, methodologies, and problem solving, is taking a step in the wrong direction (I base this opinion on many years of watching the types of questions asked here at CP). Now if you already have these skills, then learning a computer language is trivial. While their syntax is different, they all have a common goal, and switching between a handful of them should not be a big deal.
I've seen way too many instances where a person will be presented with a problem, and that person wants to immediately run to the keyboard and start banging out code (using their favorite language). The issue arises when they do not have access to that language and thus cannot think their way through the problem.
"One man's wage rise is another man's price increase." - Harold Wilson
"Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons
"You can easily judge the character of a man by how he treats those who can do nothing for him." - James D. Miles
|
|
|
|
|
Thanks, David. I couldn't agree more with your post. As to having the basics, I think I'm there since I cringe at the words "Go To" and still scribble out structure diagrams when I am building something.
Methodologies? Does being on the methodology teams for a major corp and Big 7-6-5-4-3 firm count.
One of the reasons I'm re-learning to program is my work took me up the process (lots of time in business systems/process analysis) and to areas like data center consolidation and production change management that I had never considered when I was in application development, way back when.
cat fud heer
|
|
|
|
|
Individuals learn best in their own way - there's no 'right way' of learning. some folk need a class with real-time Q&A, some prefer self-paced 'how to' books, some online video courses, etc.
Personally I find that having something to actually achieve is my starting point. Rather than a course that shows me how to produce this simple outcome, or even a complex outcome that makes little or no sense to me, I start with a project.
Then find out how to do it using google-fu
There might be some courses out there that help with bits, some blogs that help with others and sometimes I might even resort {shudder} to Q&A @ CP
And blogging about it helps- as you have said - as a teacher, getting one student to explain something to another is a great way of making sure they understand - and identifying the bits they don't.
so, I would take something you have done in VBA & start off with a 'how could I do this in google Docs' - and see where it leads you
PooperPig - Coming Soon
|
|
|
|
|
I prefer self directed learning personally. If you have the free time for it s course will be great but generally you only learn enough to be dangerous.
Here is what I tend to do
1. Read enough to install the language and any IDE there is. THis can take a while or may be impossible ( I failed to get julia installed on REDHAT at work, but it went like a dream on my MacbookPro and works well in Windows on my work box.
2. Then write a hello world program. I start with hello world then start working out how to import modules from other files so I know I can build libraries if I wish
3. Now pick a project: I often repeat something I did in a language I know, for example a prime number sieve is relatively simple and you can benchmark it against other languages. Alternatively something I read might gove me an idea but most of those ideas require a lot of time and effort and get frustrating when leanring a new language
4. If no project comes to mind try somewhere like Project Euler or just google on "Undergraduate computer science projects"
5. As to the two languages you mention: Download AptanaStudio 3 for JAvascripe. I think it also includes PYDEV, but I always install Pydev for Eclipse. The IDE is a little temperamental and sometimes it is easier to run javascript externally. Use Firefox and install developer tools
6. If you are doing this privately be ready for lots of WTF moment and a lot of googling and going the wrong direction.
|
|
|
|
|
Thanks, aayawa!
I've been through plenty of hair-pulling and googling for answers. I remember one function that would crash Excel at its exit. It took me two full days to find out what I did wrong on that one!
As to re-building something in the new language, that was in my thoughts, too. Those functions I developed in VBA should mostly be useful in Google Drive and OpenOffice, or so I would think. It becomes a matter of translating the basic syntax/flow then figuring out how the different object models are accessed and exploited, or so I hope.
My next step (assuming the Google Drive/OpenOffice) is that I had started a call/visitor log project for someone using VBA/Excel. I might pull that from the archives, take it to a point, then re-do it in the other environments/languages.
And thanks for the leads on the IDEs. Much appreciated.
cat fud heer
|
|
|
|
|
BiggerDon wrote: I am most interested in how you've gone about being self-educated in different languages and technologies.
Books, books and then, more books. At the age of 15 I had a thousand page VB 5 teach yourself book sitting on my lap, while I was in front of my computer trying out what the book was teaching. Of course, nowadays a kindle won't feel so heavy and cumbersome.
This may take a little while of your time, but it is a lot of fun and you can learn things the right way. And the best part is, it is cheap. Plus you can learn on your own pace.
It worked very well for me to the point that I started my career before getting to college.
To alcohol! The cause of, and solution to, all of life's problems - Homer Simpson
----
Our heads are round so our thoughts can change direction - Francis Picabia
|
|
|
|
|
Yep. I'm a book guy. I have books on Excel VBA for 2007, 2010 and 2013. My complaint is if I buy a second (or third) book on the same language the first several hundred pages are redundant, just covering the same syntax as before. I bought different authors each time, hoping for a new twist.
Fabio Franco wrote: At the age of 15 I had a thousand page VB 5 teach yourself book sitting on my lap
At age 17, two guys in my HS physics class brought in calculators that could do addition, subtraction, multiplication and division. They were $100, at that time real money.
At 28, a year after the Commodore 64 came on the market, I took my first programming class. We used punch cards.
Not denigrating your comment, just providing context.
cat fud heer
|
|
|
|
|
BiggerDon wrote: My complaint is if I buy a second (or third) book on the same language the first several hundred pages are redundant
You will need one book for an introduction to C# and the .net framework overall, the rest are about the specific areas of .net framework and its APIs and Tools, which are very specific (Asp.Net, WPF, etc).
Usually the books I buy starts with something like this in the first pages:
"Who is this book for?"
"This book assumes you have a working knowledge of the C# language..."
Most books at amazon, allows you to read the first pages, plus first chapter so you avoid books that go again in the same topic.
To alcohol! The cause of, and solution to, all of life's problems - Homer Simpson
----
Our heads are round so our thoughts can change direction - Francis Picabia
|
|
|
|
|
That's different than the market in VBA books, I'm glad to hear. Thanks for the info.
cat fud heer
|
|
|
|
|
A great place to start learning almost any language is codecademy
It's free and covers a lot of material in a step by step manner. With everything you learn it tests your knowledge before moving on to the next subject. It won't teach you everything but it does give you that guided start which is the hardest part. Codecademy will also show you where to find good reference material to continue expanding your knowledge of a particular subject.
|
|
|
|
|
Twallick, thanks for the reply.
I've already completed one of codecademy's tutorials. It seems thorough enough, for the introduction I needed to Javascript. Your recommendation is much appreciated. I would hate to spend more time on tutorials when theirs a better alternative.
cat fud heer
|
|
|
|
|
If you never programmed in any language before then you need to start from the beginning. You have to learn variables, data types loops and decision branching. Every language does all these thing with wildly different syntax. Codecademy is not just random tutorials. It steps you through the basics of what you need to know in order to do even the simple stuff.
Learning java script is just a small piece of the pie. what you realy need to start with is HTML and CSS(cascading style sheets) to learn how to create the interfaces to your JS code. JS does you no good if you can't get input and display output. Once you have HTML AKA basic web page design. JS and what you can do with it will make more sense.
If what you are wanting is an all purpose language that you can make your own independent interfaces, like you get with executable programs then you might want to consider learning Microsoft C#, basic Free visual studio express or Java proper. both are free and you will most likely find you will never have to buy the premium versions.
|
|
|
|
|
Thanks, Twallick.
You are absolutely correct that the first thing is to understand the constructs of programming. Been there, done that, long time ago. However, I don't think the way things are done are wildly different, and maybe at times close enough to be mildly confusing. I work with a director who says I'm always showing him "old school" drawings like Data Flows and Structure Diagrams whenever I explain things to him. He appreciates it because we went to the same University.
Also, if you can't present what your program does to a person, for the most part, there really is no purpose. Absolute agreement there! IOW, I don't think there are many, if any, in this discussion whose focus is real-time hardware control, and I'm not going there from here.
My thoughts on Java Script are there is already an environment where I can use it without HTML/CSS, i.e. Google Drive, and that is a step off from using VBA with Excel. That doesn't mean HTML & CSS are unimportant, it's just I may put those horses behind the usual cart.
Thanks again for your input to where I am heading.
cat fud heer
|
|
|
|
|
My primary way of learning technology is to use youtube coding tutorials. I ALWAYS start with youtube when learning a new technology and branch out to written tutorials from there.
If you want to learn c# this is one of the BEST video tutorial playlists i have found
https://www.youtube.com/playlist?list=PLAC325451207E3105[^]
Eric
|
|
|
|
|
Eric, thanks for the tip. I've never tried using YouTube tutorials. I will now. That link is bookmarked for when I have the IDE installed and can turn up the sound. (Gawd! I hate cube world!)
Whoever has done these should be commended because they've laid this out like a book, meaning I can go to different chapters when I want. (I'm not much of a YouTuber so I'm not certain where the bar is for this sort of thing.
cat fud heer
|
|
|
|
|
Hello:
I would also consider myself one of the more senior developers (50+). Most of the work we have done over the last 15 years or so was in VB6, but a few years ago we knew the future was somewhat limited.
So I started to learn C#, that and some ASP.NET, Javascript etc. and we are now producing some interesting web sites, web applications and of course more desktop software. I can't say the learning curve has been easy, but we seem to be making pretty good progress now and it is pretty nice to have skills that are a little more "current" now.
It is also fun when you push yourself out of the comfort zone, always lots to learn!
So I would suggest C# too.... good luck.
Dave
|
|
|
|
|
Thanks Dave!
Spart123 wrote: I would also consider myself one of the more senior developers (50+).
It's nice to know that another person younger than I am .... Never mind! I expect just about everyone on this site to be younger than I am.
It's interesting to read that someone in his teens and someone in his 50's have similar recommendations (c#) even with different perspectives, i.e. you mentioned "more current" and he mentioned the future.
I have the feeling that I should be making a list of all the recommendations, then using that as a check list moving forward. Hmmmm...something else on that to-do list.
cat fud heer
|
|
|
|
|
BiggerDon,
Later in the post, you mention knowing COBOL. Quite frankly I still see jobs posted for COBOL, have you looked... Still interested in that?
Others have said this... It is no longer the language... It is the frameworks that consume you, and those depend on what problem you are solving.
I am going through CodeSchool personally because I realized I just "picked up JavaScript", and never studied it. I am flying through the material AND Learning a few new things. I also want to recommend it to some younglings in the neighborhood who are entering High School and need some guidance. After a few badges I say it works pretty well. Do some of the free stuff see how it fits you.
Again, I would look to get back into ANY programming you can find. That help desk experience is not helping. Finally, I am 48... I am feeling like 55 might be the END of my core programming, and I will be simply managing the smart kids (right now only 10-15% of my time is truly ME doing the programming. I do more reviews and designs)...
So, the point is that you have to consider your quality of life as well. Do you want the pressures that come with programming these days?
HTH,
Kirk Out!
|
|
|
|
|
Quite frankly, I was interested in COBOL or much other programming back in the days when my knowledge was fresher. I quickly moved more into the realm of business systems (process) analysis and methodology.
As to the pressures of programming, are they much more than the pressures of managing a project, implementing a time tracking system for 1700 people around the world who think "HQ" means "hardly qualified", working up a presentation to a CIO that is not complimentary to his organization, or working a busy bar on a Friday night. Due dates are due dates, response time is response time. I took up my current projects because I was bored, because there really was no pressure: RIP, retirement in place.
Funny thing is 30 some years ago I heard of someone else going through the same thing I am, reaching 60 and deciding to step "backwards" into programming. Programming has its benefits, i.e. at the end of the day (or project) you can measure your progress and see something you've accomplished.
I hope all of that did not sound like harping. You're challenges are valid. They stimulate my thinking about the direction I am undertaking. I thank you for that.
CodeSchool? I will have to look into it. That makes at least four resources for education/training people have provided here. I already knew of one. Another is good for me.
cat fud heer
|
|
|
|
|
There are a wealth of online courses for learning web development, both free and paid. I'd definitely recommend you get really comfortable with HTML and some CSS, and then start learning Javascript. Javascript is the language of web browsers (and now many servers, too), so its one of the most pervasive languages around, and its works on every platform (Windows, Apple, Linux, iOS, Android, etc. etc. etc.).
My personal favorites are:
Anyways, despite the cost - the paid sites are well worth the money for the advanced concepts and the depth of learning they provide, and are a huge factor in why I'm a professional web developer today (despite having a degree in Music, ). In fact, after getting hired at my current company, I convinced them to invest in Code School for our team and the other devs love it! (We just renewed for another year).
Anyways, best of luck to you in your search for greener pastures!
|
|
|
|
|
Dave
Thanks for the recommendations for on-line training. I'm adding them to my "Check this out" list. With the number of replies I've received to my question, and my personal commitment to respond to everyone who was kind enough to provide their insights, I'm finding I cannot do the check-it-out task in line with responding.
I think you're the first person to mention HTML/CSS. I'm wondering now if I shouldn't have a plan to develop some knowledge in a small set of languages, do some "peripheral" tutorials as any projects progress, making me more ready for more projects. Yep...ask a question and more questions arise!
You mentioned having a music degree. Way back when I worked with a married couple who were musician-programmers. Over the course of those years they said that programming is a lot like composing. As I remember it, movements were like stages of batch processing, repetition was looping, thematics were functions, and variations on themes were if-then constructs. Yes, there was beer involved!
cat fud heer
|
|
|
|
|
Glad to hear you've had such a good response...hopefully you found some good advice along the way! Anyways...the beauty of many of the sites I mentioned, is that you can really get a taste of a lot of languages to see what interests you. While most of what I mentioned is web/mobile focused, there's quite a bit of material on Treehouse that isn't. Eventually you'll want to focus in, but I initially dabbled with PHP, Python, Go and others before focusing in on Ruby & Javascript. I often hear folks say HTML and CSS aren't programming languages (usually with a derogatory tone), and although technically true, IMHO understanding them is just as important (if not more so) in the context of modern web programming than any scripting language.
I think HTML/CSS/Javascript is a great combo if you want to get into automation for Google "Work" products, and it will serve you well beyond that arena as well.
That's funny you mention the programming/composition paradigm (my music degree concentration was composition), and I'd agree that they're definitely correlated! Maybe you could equate your choice of language to the "orchestration"...
|
|
|
|
|
Lots of great advice!
David Lormor wrote: I often hear folks say HTML and CSS aren't programming languages (usually with a derogatory tone)
Ayup! That's why I started with the apology for VBA, to defuse the scoffers in the crowd. The difference between HTML, CSS, and SQL (which some also say is not a programming language) is they don't center on the same procedural structures as the others. Even the vaunted OO languages need If-Else and Do-While and all that jazz that makes them, too, "real".
cat fud heer
|
|
|
|
|