Self-directed learning
-
I've lurked here from time to time, making off-the-wall comments from time to time. Now, with all my great contributions :) accredited, I'm going to ask for some opinion on a matter near and dear to me. My career was mainly in consulting and HQ Information Systems. My undergraduate is in Accounting and Info Systems (not comp sci, sorry), so Things got rough personally and I ended up in a Help Desk. (Not looking for sympathy, just explaining the situation.) In digging my way back out of a hole of my own making I started defining and taking on projects to automate some of the brain- and time-killing work people do to combine this report and that to make Excel workbooks. From there I started to learn VBA (I know, it's not as good as any other language a real programmer would use!) on my own through books, experimentation, some on-line fora, and writing a blog (with very few views...and I'm not pushing that here) mainly because I realized long ago that writing is a means to make certain I know what I think I learned. I've got no training budget, and corporations don't spend money training someone who is (a) working with non-mainstream technology and (b) past the age of 50. Yes, I'll get to the question(s)! Recently I started considering branching out. I figured I could take what I know about programming in a MS spreadsheet world and leverage that to Google Drive and OpenOffice, mainly to start learning more mainstream languages, e.g. Python and Javascript. 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. Thoughts?
cat fud heer
-
I've lurked here from time to time, making off-the-wall comments from time to time. Now, with all my great contributions :) accredited, I'm going to ask for some opinion on a matter near and dear to me. My career was mainly in consulting and HQ Information Systems. My undergraduate is in Accounting and Info Systems (not comp sci, sorry), so Things got rough personally and I ended up in a Help Desk. (Not looking for sympathy, just explaining the situation.) In digging my way back out of a hole of my own making I started defining and taking on projects to automate some of the brain- and time-killing work people do to combine this report and that to make Excel workbooks. From there I started to learn VBA (I know, it's not as good as any other language a real programmer would use!) on my own through books, experimentation, some on-line fora, and writing a blog (with very few views...and I'm not pushing that here) mainly because I realized long ago that writing is a means to make certain I know what I think I learned. I've got no training budget, and corporations don't spend money training someone who is (a) working with non-mainstream technology and (b) past the age of 50. Yes, I'll get to the question(s)! Recently I started considering branching out. I figured I could take what I know about programming in a MS spreadsheet world and leverage that to Google Drive and OpenOffice, mainly to start learning more mainstream languages, e.g. Python and Javascript. 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. Thoughts?
cat fud heer
BiggerDon wrote:
I am most interested in how you've gone about being self-educated in different languages and technologies.
Get a book, or a course: if you try and "pick it up as you go along" you miss far, far too much stuff. Books and courses both introduce the material in a structured way and (hopefully) cover all the material. And do the exercises! "Doing" something forces it into your brain better than "reading" something - so "looking at the answers" is not as effective a learning tool as sitting there and mucking the whole thing up! :laugh: And modern frameworks are seriously complicated - there are so many ways to do the same thing that it is too easy to use something "that works" even though it's "only just" when there is a better method that does it "properly". For example, you can use an ArrayList in VB / C# and it'll do the job - but a generic List<T> does the same thing much, much better!
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
-
I've lurked here from time to time, making off-the-wall comments from time to time. Now, with all my great contributions :) accredited, I'm going to ask for some opinion on a matter near and dear to me. My career was mainly in consulting and HQ Information Systems. My undergraduate is in Accounting and Info Systems (not comp sci, sorry), so Things got rough personally and I ended up in a Help Desk. (Not looking for sympathy, just explaining the situation.) In digging my way back out of a hole of my own making I started defining and taking on projects to automate some of the brain- and time-killing work people do to combine this report and that to make Excel workbooks. From there I started to learn VBA (I know, it's not as good as any other language a real programmer would use!) on my own through books, experimentation, some on-line fora, and writing a blog (with very few views...and I'm not pushing that here) mainly because I realized long ago that writing is a means to make certain I know what I think I learned. I've got no training budget, and corporations don't spend money training someone who is (a) working with non-mainstream technology and (b) past the age of 50. Yes, I'll get to the question(s)! Recently I started considering branching out. I figured I could take what I know about programming in a MS spreadsheet world and leverage that to Google Drive and OpenOffice, mainly to start learning more mainstream languages, e.g. Python and Javascript. 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. Thoughts?
cat fud heer
BiggerDon wrote:
how you've gone about being self-educated in different languages and technologies
I have found that I am more suited to a classroom situation, for the structure more than anything else. I have not had trouble extending my study and knowledge of something on my own once I have a start, but that start requires a rather swift kick. Examples: When .net came out I read the spec of C# and bought "Visual C#" (essentially Visual Studio .net 2002 with only C#), then just kinda sat there looking at it. Then I took some MCAD classes (C#, ADO.net, ASP.net) and . A few years ago I bought a copy of "Learn Java for Android in 21 Days" (or something like that). I installed the SDK and Eclipse, read chapters 1 and 2, and haven't touched it since. I should look for a class.
-
BiggerDon wrote:
I am most interested in how you've gone about being self-educated in different languages and technologies.
Get a book, or a course: if you try and "pick it up as you go along" you miss far, far too much stuff. Books and courses both introduce the material in a structured way and (hopefully) cover all the material. And do the exercises! "Doing" something forces it into your brain better than "reading" something - so "looking at the answers" is not as effective a learning tool as sitting there and mucking the whole thing up! :laugh: And modern frameworks are seriously complicated - there are so many ways to do the same thing that it is too easy to use something "that works" even though it's "only just" when there is a better method that does it "properly". For example, you can use an ArrayList in VB / C# and it'll do the job - but a generic List<T> does the same thing much, much better!
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
OriginalGriff wrote:
ArrayList
One of so many parts of .net that should be marked Obsolete.
-
BiggerDon wrote:
I am most interested in how you've gone about being self-educated in different languages and technologies.
Get a book, or a course: if you try and "pick it up as you go along" you miss far, far too much stuff. Books and courses both introduce the material in a structured way and (hopefully) cover all the material. And do the exercises! "Doing" something forces it into your brain better than "reading" something - so "looking at the answers" is not as effective a learning tool as sitting there and mucking the whole thing up! :laugh: And modern frameworks are seriously complicated - there are so many ways to do the same thing that it is too easy to use something "that works" even though it's "only just" when there is a better method that does it "properly". For example, you can use an ArrayList in VB / C# and it'll do the job - but a generic List<T> does the same thing much, much better!
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
OriginalGriff wrote:
And modern frameworks are seriously complicated
And how! On Monday I was dropped in the deep end, writing my first ever SharePoint web parts. Then I had weights attached to me when I discovered just how far removed writing Sharepoint Online hosted web parts is from simple old fashioned web parts that are basically a user control. Yes, SharePoint isn't a 'framework' as such, more a platform, but the complexities boggle. :omg:
No object is so beautiful that, under certain conditions, it will not look ugly. - Oscar Wilde
-
OriginalGriff wrote:
ArrayList
One of so many parts of .net that should be marked Obsolete.
Agreed. :sigh:
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
-
I've lurked here from time to time, making off-the-wall comments from time to time. Now, with all my great contributions :) accredited, I'm going to ask for some opinion on a matter near and dear to me. My career was mainly in consulting and HQ Information Systems. My undergraduate is in Accounting and Info Systems (not comp sci, sorry), so Things got rough personally and I ended up in a Help Desk. (Not looking for sympathy, just explaining the situation.) In digging my way back out of a hole of my own making I started defining and taking on projects to automate some of the brain- and time-killing work people do to combine this report and that to make Excel workbooks. From there I started to learn VBA (I know, it's not as good as any other language a real programmer would use!) on my own through books, experimentation, some on-line fora, and writing a blog (with very few views...and I'm not pushing that here) mainly because I realized long ago that writing is a means to make certain I know what I think I learned. I've got no training budget, and corporations don't spend money training someone who is (a) working with non-mainstream technology and (b) past the age of 50. Yes, I'll get to the question(s)! Recently I started considering branching out. I figured I could take what I know about programming in a MS spreadsheet world and leverage that to Google Drive and OpenOffice, mainly to start learning more mainstream languages, e.g. Python and Javascript. 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. Thoughts?
cat fud heer
Their is a whole bunch of MOOCs and online tutorials and websites in the net. Like "Code School" or "Ray Wenderlich". The problem is: which way (Apple, Microsoft, Android,Linux) to go. A good starting point may be Java, because many languages are similar - but its like a religion...
Press F1 for help or google it. Greetings from Germany
-
I've lurked here from time to time, making off-the-wall comments from time to time. Now, with all my great contributions :) accredited, I'm going to ask for some opinion on a matter near and dear to me. My career was mainly in consulting and HQ Information Systems. My undergraduate is in Accounting and Info Systems (not comp sci, sorry), so Things got rough personally and I ended up in a Help Desk. (Not looking for sympathy, just explaining the situation.) In digging my way back out of a hole of my own making I started defining and taking on projects to automate some of the brain- and time-killing work people do to combine this report and that to make Excel workbooks. From there I started to learn VBA (I know, it's not as good as any other language a real programmer would use!) on my own through books, experimentation, some on-line fora, and writing a blog (with very few views...and I'm not pushing that here) mainly because I realized long ago that writing is a means to make certain I know what I think I learned. I've got no training budget, and corporations don't spend money training someone who is (a) working with non-mainstream technology and (b) past the age of 50. Yes, I'll get to the question(s)! Recently I started considering branching out. I figured I could take what I know about programming in a MS spreadsheet world and leverage that to Google Drive and OpenOffice, mainly to start learning more mainstream languages, e.g. Python and Javascript. 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. Thoughts?
cat fud heer
BiggerDon wrote:
I am most interested in how you've gone about being self-educated in different languages and technologies.
A variety of ways - in the early days (1980's) I learned BASIC and assembly from reading books, which then actually had meaningful content. I also soaked up all the hardware books I could find. I learned C from K&R, C++ from Stroustrup and others, and Pascal from Borland. College taught me Fortran :doh: C# I learned from playing around with it and reading MSDN articles - it was an easy enough transition from C/C++. Conversely, Ruby on Rails was a monster. My first intro to a duck-typed language as well as diving into Ubuntu, web development (and all that comes with that). My client was also my mentor, and that was absolutely necessary and a far better experience than any collection of books could have given me, or classrooms, IMO. After two years of that, I've concluded that duck-typed languages are a Really Bad Idea. I picked up PHP in a couple of hours -- the online documentation / community is outstanding. As of two weeks ago, I'm doing my first ever Java coding. Some gnashing of teeth at some of the BS in the language, and I find the Oracle documentation sort of sucks. Funny how with PHP, I would find answers on the PHP site, while with Java, I find answer on Stack Overflow. However, Java is so similar to C# that it's a fairly easy transition, most of the learning curve is in the IntelliJ IDE and figuring out what framework components support what I want to do (like event listeners, hashmaps, etc.) My recommendation? Start with what I think is the best programming language out there right now: C#. Everything else I've found to be a teeth gnashing experience (mind you, not that C# has those moments too, but they don't usually require a visit to the orthodontist afterwards.) Marc
Imperative to Functional Programming Succinctly Higher Order Programming
-
Their is a whole bunch of MOOCs and online tutorials and websites in the net. Like "Code School" or "Ray Wenderlich". The problem is: which way (Apple, Microsoft, Android,Linux) to go. A good starting point may be Java, because many languages are similar - but its like a religion...
Press F1 for help or google it. Greetings from Germany
I'd submit that the language is irrelevant: you can pick up most languages in a day or two (heck, the whole of C# is a couple of hours!). What takes time is the framework the language will be used in: .NET, Android, iOS are all different, and they are a huge amount of learning. Think about it: it you are competent at C#, you could learn and be competent in VB in a day or so (and most of that time will be swearing at it for being a stupid rather verbose language in comparison :laugh: )
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
-
I've lurked here from time to time, making off-the-wall comments from time to time. Now, with all my great contributions :) accredited, I'm going to ask for some opinion on a matter near and dear to me. My career was mainly in consulting and HQ Information Systems. My undergraduate is in Accounting and Info Systems (not comp sci, sorry), so Things got rough personally and I ended up in a Help Desk. (Not looking for sympathy, just explaining the situation.) In digging my way back out of a hole of my own making I started defining and taking on projects to automate some of the brain- and time-killing work people do to combine this report and that to make Excel workbooks. From there I started to learn VBA (I know, it's not as good as any other language a real programmer would use!) on my own through books, experimentation, some on-line fora, and writing a blog (with very few views...and I'm not pushing that here) mainly because I realized long ago that writing is a means to make certain I know what I think I learned. I've got no training budget, and corporations don't spend money training someone who is (a) working with non-mainstream technology and (b) past the age of 50. Yes, I'll get to the question(s)! Recently I started considering branching out. I figured I could take what I know about programming in a MS spreadsheet world and leverage that to Google Drive and OpenOffice, mainly to start learning more mainstream languages, e.g. Python and Javascript. 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. Thoughts?
cat fud heer
BiggerDon wrote:
writing is a means to make certain I know what I think I learned
Far too few people know this truth. Have you ever read a Head First book (example Head First Design Patterns -- amazon link[^])? I don't care for those books at all, because they contain huge distractions -- annoying comic-strip bits and pictures etc. However, the Design Patterns book is quite good. Head First Intro However, the introduction to those books has a great explanation of recent discoveries about how the mind remembers and learns things. Basically the mind only remembers things it deems important. Since survival is one of the most important things, you tend to remember things that will harm or kill you, like the fact that a lion will eat you. Other things, like facts on a page you rarely remember. The point is that you must make your mind believe something is important to really learn it. Dopamine's Part In Learning There's a whole deal about dopamine release in the brain that is related to learning also. You also tend to remember things that you like. When you like something dopamine flows through the brain and makes you feel good. When you feel good you tend to remember. This even tends to be a huge circular system. How Do I Make Things Seem Important? I take a program I really like or am very interested in and usually that program will be one created by a large company --- for example Microsoft -- then I think, "Hey, how could I write this program myself and give it away to everyone for free? And, how do I make it better than the one people are paying for?" Make It For Myself The third way I make something important and exciting is by making it for myself. I've always done this and recently we've heard a lot about Steve Jobs doing this. It is a huge motivator and you end up learning faster this way. Right Tool For The Job Next I determine if it is a desktop app or a web app. After that I choose a framework which has a large number of adherents s
-
I've lurked here from time to time, making off-the-wall comments from time to time. Now, with all my great contributions :) accredited, I'm going to ask for some opinion on a matter near and dear to me. My career was mainly in consulting and HQ Information Systems. My undergraduate is in Accounting and Info Systems (not comp sci, sorry), so Things got rough personally and I ended up in a Help Desk. (Not looking for sympathy, just explaining the situation.) In digging my way back out of a hole of my own making I started defining and taking on projects to automate some of the brain- and time-killing work people do to combine this report and that to make Excel workbooks. From there I started to learn VBA (I know, it's not as good as any other language a real programmer would use!) on my own through books, experimentation, some on-line fora, and writing a blog (with very few views...and I'm not pushing that here) mainly because I realized long ago that writing is a means to make certain I know what I think I learned. I've got no training budget, and corporations don't spend money training someone who is (a) working with non-mainstream technology and (b) past the age of 50. Yes, I'll get to the question(s)! Recently I started considering branching out. I figured I could take what I know about programming in a MS spreadsheet world and leverage that to Google Drive and OpenOffice, mainly to start learning more mainstream languages, e.g. Python and Javascript. 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. Thoughts?
cat fud heer
First, kudos for continuing to learn! That's more than most people do to begin with. Second, don't minimize anything you learn, regardless of language, the concepts are valuable. While it may be true that most developers don't use VBA, you are programming. Also, I have met many people that did not study CS in college and are great developers. One guy had a law degree. There are so many languages, infinite ways to solve problems, the choices are dizzying. I think the first thing I think you should do before you think about technologies, is decide what you want to do with your skills. If you want to continue to do tasks that are geared towards automating processes, python would be a good way to go. It is a general purpose scripting language that is widely available on all types of systems. If you are interested in web technologies, JavaScript would be a better choice. If you want to learn more general purpose programming, you can download Visual Studio Express for free from Microsoft and start learning VB.Net or C#. C# being the more valuable of the skills. Once you decide what you want to do, and choose a language based on that domain, get a book to help guide you. You don't even need to spend money, you can get many great books at the library. There's lots of stuff on the web, unfortunately you need to know what you are looking for to find it most of the time. Like others have said, there are so many frameworks, and complicated technologies. Try to focus on just learning like you have been. Solve small problems. Even make small personal utilities for yourself, something that will keep your interest. I have stayed with C++ my entire career, with the need to familiarize with JAVA, C#, Python, JavaScript or other technologies for a short period of time. I have remained primarily a general purpose developer with solid software architecture skills. Taking the stance that if a path leads me in a direction that I need to learn a new technology, that is when I pick it up. Frameworks and libraries come and go as time passes. The languages for the most part is what stays the same. Programming itself, is similar no matter what language you choose. You break bigger problems into smaller problems until they can be solved with the tool you are using. Focus on improving your problem solving skills. Once you are proficient with one language, it is much easier to pick up others. The fool's errand would be to stop learning.
-
Their is a whole bunch of MOOCs and online tutorials and websites in the net. Like "Code School" or "Ray Wenderlich". The problem is: which way (Apple, Microsoft, Android,Linux) to go. A good starting point may be Java, because many languages are similar - but its like a religion...
Press F1 for help or google it. Greetings from Germany
Java is only now getting lambdas. I wouldn't recommend Java as a first, non-necessity, choice at all.
No object is so beautiful that, under certain conditions, it will not look ugly. - Oscar Wilde
-
BiggerDon wrote:
writing is a means to make certain I know what I think I learned
Far too few people know this truth. Have you ever read a Head First book (example Head First Design Patterns -- amazon link[^])? I don't care for those books at all, because they contain huge distractions -- annoying comic-strip bits and pictures etc. However, the Design Patterns book is quite good. Head First Intro However, the introduction to those books has a great explanation of recent discoveries about how the mind remembers and learns things. Basically the mind only remembers things it deems important. Since survival is one of the most important things, you tend to remember things that will harm or kill you, like the fact that a lion will eat you. Other things, like facts on a page you rarely remember. The point is that you must make your mind believe something is important to really learn it. Dopamine's Part In Learning There's a whole deal about dopamine release in the brain that is related to learning also. You also tend to remember things that you like. When you like something dopamine flows through the brain and makes you feel good. When you feel good you tend to remember. This even tends to be a huge circular system. How Do I Make Things Seem Important? I take a program I really like or am very interested in and usually that program will be one created by a large company --- for example Microsoft -- then I think, "Hey, how could I write this program myself and give it away to everyone for free? And, how do I make it better than the one people are paying for?" Make It For Myself The third way I make something important and exciting is by making it for myself. I've always done this and recently we've heard a lot about Steve Jobs doing this. It is a huge motivator and you end up learning faster this way. Right Tool For The Job Next I determine if it is a desktop app or a web app. After that I choose a framework which has a large number of adherents s
newton.saber wrote:
There's a whole deal about dopamine release in the brain that is related to learning also.
No wonder my head is spinning when I leave work these days.
No object is so beautiful that, under certain conditions, it will not look ugly. - Oscar Wilde
-
First, kudos for continuing to learn! That's more than most people do to begin with. Second, don't minimize anything you learn, regardless of language, the concepts are valuable. While it may be true that most developers don't use VBA, you are programming. Also, I have met many people that did not study CS in college and are great developers. One guy had a law degree. There are so many languages, infinite ways to solve problems, the choices are dizzying. I think the first thing I think you should do before you think about technologies, is decide what you want to do with your skills. If you want to continue to do tasks that are geared towards automating processes, python would be a good way to go. It is a general purpose scripting language that is widely available on all types of systems. If you are interested in web technologies, JavaScript would be a better choice. If you want to learn more general purpose programming, you can download Visual Studio Express for free from Microsoft and start learning VB.Net or C#. C# being the more valuable of the skills. Once you decide what you want to do, and choose a language based on that domain, get a book to help guide you. You don't even need to spend money, you can get many great books at the library. There's lots of stuff on the web, unfortunately you need to know what you are looking for to find it most of the time. Like others have said, there are so many frameworks, and complicated technologies. Try to focus on just learning like you have been. Solve small problems. Even make small personal utilities for yourself, something that will keep your interest. I have stayed with C++ my entire career, with the need to familiarize with JAVA, C#, Python, JavaScript or other technologies for a short period of time. I have remained primarily a general purpose developer with solid software architecture skills. Taking the stance that if a path leads me in a direction that I need to learn a new technology, that is when I pick it up. Frameworks and libraries come and go as time passes. The languages for the most part is what stays the same. Programming itself, is similar no matter what language you choose. You break bigger problems into smaller problems until they can be solved with the tool you are using. Focus on improving your problem solving skills. Once you are proficient with one language, it is much easier to pick up others. The fool's errand would be to stop learning.
Paul M Watt wrote:
Also, I have met many people that did not study CS in college and are great developers. One guy had a law degree
:laugh: I studied CS back when, but now I want a law degree.
No object is so beautiful that, under certain conditions, it will not look ugly. - Oscar Wilde
-
First, kudos for continuing to learn! That's more than most people do to begin with. Second, don't minimize anything you learn, regardless of language, the concepts are valuable. While it may be true that most developers don't use VBA, you are programming. Also, I have met many people that did not study CS in college and are great developers. One guy had a law degree. There are so many languages, infinite ways to solve problems, the choices are dizzying. I think the first thing I think you should do before you think about technologies, is decide what you want to do with your skills. If you want to continue to do tasks that are geared towards automating processes, python would be a good way to go. It is a general purpose scripting language that is widely available on all types of systems. If you are interested in web technologies, JavaScript would be a better choice. If you want to learn more general purpose programming, you can download Visual Studio Express for free from Microsoft and start learning VB.Net or C#. C# being the more valuable of the skills. Once you decide what you want to do, and choose a language based on that domain, get a book to help guide you. You don't even need to spend money, you can get many great books at the library. There's lots of stuff on the web, unfortunately you need to know what you are looking for to find it most of the time. Like others have said, there are so many frameworks, and complicated technologies. Try to focus on just learning like you have been. Solve small problems. Even make small personal utilities for yourself, something that will keep your interest. I have stayed with C++ my entire career, with the need to familiarize with JAVA, C#, Python, JavaScript or other technologies for a short period of time. I have remained primarily a general purpose developer with solid software architecture skills. Taking the stance that if a path leads me in a direction that I need to learn a new technology, that is when I pick it up. Frameworks and libraries come and go as time passes. The languages for the most part is what stays the same. Programming itself, is similar no matter what language you choose. You break bigger problems into smaller problems until they can be solved with the tool you are using. Focus on improving your problem solving skills. Once you are proficient with one language, it is much easier to pick up others. The fool's errand would be to stop learning.
Great post.
-
BiggerDon wrote:
I am most interested in how you've gone about being self-educated in different languages and technologies.
A variety of ways - in the early days (1980's) I learned BASIC and assembly from reading books, which then actually had meaningful content. I also soaked up all the hardware books I could find. I learned C from K&R, C++ from Stroustrup and others, and Pascal from Borland. College taught me Fortran :doh: C# I learned from playing around with it and reading MSDN articles - it was an easy enough transition from C/C++. Conversely, Ruby on Rails was a monster. My first intro to a duck-typed language as well as diving into Ubuntu, web development (and all that comes with that). My client was also my mentor, and that was absolutely necessary and a far better experience than any collection of books could have given me, or classrooms, IMO. After two years of that, I've concluded that duck-typed languages are a Really Bad Idea. I picked up PHP in a couple of hours -- the online documentation / community is outstanding. As of two weeks ago, I'm doing my first ever Java coding. Some gnashing of teeth at some of the BS in the language, and I find the Oracle documentation sort of sucks. Funny how with PHP, I would find answers on the PHP site, while with Java, I find answer on Stack Overflow. However, Java is so similar to C# that it's a fairly easy transition, most of the learning curve is in the IntelliJ IDE and figuring out what framework components support what I want to do (like event listeners, hashmaps, etc.) My recommendation? Start with what I think is the best programming language out there right now: C#. Everything else I've found to be a teeth gnashing experience (mind you, not that C# has those moments too, but they don't usually require a visit to the orthodontist afterwards.) Marc
Imperative to Functional Programming Succinctly Higher Order Programming
Great advice and great post. Also, C# is such a great language isn't it? I like it so much. There are many reasons to use it. 1. well supported 2. makes man things very easy 3. nice clean language 4. true OOP concepts supported Power and beauty, but of course there are things it lacks too. The new concurrency libraries are very cool. They keep adding cool stuff and yet a new learner can do simple stuff easily. Really like C#.
-
I've lurked here from time to time, making off-the-wall comments from time to time. Now, with all my great contributions :) accredited, I'm going to ask for some opinion on a matter near and dear to me. My career was mainly in consulting and HQ Information Systems. My undergraduate is in Accounting and Info Systems (not comp sci, sorry), so Things got rough personally and I ended up in a Help Desk. (Not looking for sympathy, just explaining the situation.) In digging my way back out of a hole of my own making I started defining and taking on projects to automate some of the brain- and time-killing work people do to combine this report and that to make Excel workbooks. From there I started to learn VBA (I know, it's not as good as any other language a real programmer would use!) on my own through books, experimentation, some on-line fora, and writing a blog (with very few views...and I'm not pushing that here) mainly because I realized long ago that writing is a means to make certain I know what I think I learned. I've got no training budget, and corporations don't spend money training someone who is (a) working with non-mainstream technology and (b) past the age of 50. Yes, I'll get to the question(s)! Recently I started considering branching out. I figured I could take what I know about programming in a MS spreadsheet world and leverage that to Google Drive and OpenOffice, mainly to start learning more mainstream languages, e.g. Python and Javascript. 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. Thoughts?
cat fud heer
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 :)
-
Their is a whole bunch of MOOCs and online tutorials and websites in the net. Like "Code School" or "Ray Wenderlich". The problem is: which way (Apple, Microsoft, Android,Linux) to go. A good starting point may be Java, because many languages are similar - but its like a religion...
Press F1 for help or google it. Greetings from Germany
Thanks, Karsten. I wasn't familiar with "MOOC". Now I've learned something thanks to you. VBA wasn't my first language. As an Info Systems major in the 80's I had taken course in about 5 different languages by the time I graduated...Pascal, PL1, COBOL, FORTRAN, and the original BASIC. I think there was another one, but it's slipping my mind at this point. I touched, at least marginally, several more in the following years. The reason I mention the above is I see there are two levels of learning a language. The first is what I consider to be the basic syntax, i.e. how a module is defined, data definition statements, If and Case structures, looping, arrays, and parameters passing. To me all of those are just translation. The second level is learning the why of the language, and then the how. For example, COBOL was the first language I learned that was strong as a file processor; with VBA I learned a slew about accessing, creating, and manipulating objects. That second level is the one you addressed. I guess to this point I've looked at this incrementally (what step can I take next) rather than with a larger goal in mind. Thanks for the prod!
cat fud heer
-
I've lurked here from time to time, making off-the-wall comments from time to time. Now, with all my great contributions :) accredited, I'm going to ask for some opinion on a matter near and dear to me. My career was mainly in consulting and HQ Information Systems. My undergraduate is in Accounting and Info Systems (not comp sci, sorry), so Things got rough personally and I ended up in a Help Desk. (Not looking for sympathy, just explaining the situation.) In digging my way back out of a hole of my own making I started defining and taking on projects to automate some of the brain- and time-killing work people do to combine this report and that to make Excel workbooks. From there I started to learn VBA (I know, it's not as good as any other language a real programmer would use!) on my own through books, experimentation, some on-line fora, and writing a blog (with very few views...and I'm not pushing that here) mainly because I realized long ago that writing is a means to make certain I know what I think I learned. I've got no training budget, and corporations don't spend money training someone who is (a) working with non-mainstream technology and (b) past the age of 50. Yes, I'll get to the question(s)! Recently I started considering branching out. I figured I could take what I know about programming in a MS spreadsheet world and leverage that to Google Drive and OpenOffice, mainly to start learning more mainstream languages, e.g. Python and Javascript. 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. Thoughts?
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
-
I'd submit that the language is irrelevant: you can pick up most languages in a day or two (heck, the whole of C# is a couple of hours!). What takes time is the framework the language will be used in: .NET, Android, iOS are all different, and they are a huge amount of learning. Think about it: it you are competent at C#, you could learn and be competent in VB in a day or so (and most of that time will be swearing at it for being a stupid rather verbose language in comparison :laugh: )
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
Thanks, Griff. Much appreciated. I think you're right, the basics of the languages are much the same, as I mentioned above. Learning the syntax, at least to some level does not take long but the context (framework) is where the gold is, and mining isn't an easy task. Regarding VB versus c# verbosity, I'm not sure exactly what you mean. My guess is what you are saying is it takes more lines of code to perform the same tasks. It's something I'll look at as I move forward. OTOH, which of these is more verbose (yes, that's arguing by exception. :) ) VB: MsgBox("This is the message") c#: MessageBox.Show("This is the message") There is another point to the example. I found in a tutorial that Java Script considers "length" to be a property, whereas VB uses the "Len() function. There can be arguments as to which is more "right", which to me is a theological angels-on-the-head-of-a-pin argument. In the background I know that the software has to do the same thing: determine the number of characters of the string. My only worry is how to get the data I need for code to work. Quod rectum est practica. (That which is practical is right, not "What a practical *". :laugh: )
cat fud heer