|
Thanks, jhoga.
That sounds like advice I should take. I recently bought a book on VBA partially because it had a section on a subject I had not figured out yet. I still haven't walked through it. I should.
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'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 )
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 *". )
cat fud heer
|
|
|
|
|
|
OriginalGriff wrote: Let's just say it's a lot easier to write total cr@p in VB than it is in C# and get it through the compiler to bite you at run time!
Amen
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
|
|
|
|
|
OriginalGriff wrote: What I'm talking about is things like this:
If a = b Then
DoSomething()
End If Instead of
if (a == b) DoSomething();
Ah, but this is valid in VBA (can't speak for VB with the A)
If a= b then DoSomething()
The "Then" is necessary but the End If only when more than one command follows. I find it neither better nor worse that using "{}" to establish the boundaries of the If (or Else) scoped commands. Just a different way of saying the same thing.
Me, I tend to use the End If whether there is one command or multiple. It makes it easier for me to find where I have left one out when the compiler complains.
OriginalGriff wrote: Let's just say it's a lot easier to write total cr@p in VB than it is in C# and get it through the compiler to bite you at run time!
That reminds me of a study around the time when PCs and Apples were first around. The study claimed the papers written on the PCs were of higher quality supposedly because the students with the Apples had less experience with working through detailed issues.
...and something else, "We learn from our mistakes then make bigger and better ones." I'm convinced there is no such thing as and idiot-proof language. There are so many human and social factors that go into developing an application of any size, discipline is always the first defense against nonsense.
As to the need for having "==" (or "===" as in java script) as a comparator, I'm not sold on it. Not opposed, just not convinced and don't care enough one way or another to make a case for or against. Like I said before, it's all in the practicality to me: what does the compiler expect.
cat fud heer
|
|
|
|
|
As far as "=" vs "==" goes, I made that mistake once in C:
if (x = 3)
{
... And it took forever to work out what the problem was, so it's not one I'll make again! In C#, that won't compile...
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
|
|
|
|
|
See! The VBA compiler invokes the DWIT (Do What I'm Thinking) command!
cat fud heer
|
|
|
|
|
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
|
|
|
|
|
Brady Kelly wrote: Java is only now <layer>getting lambdas.
whoa! That one got me googling! I had no idea what you meant by "getting lambdas", and now that I've looked it up I am wonderring what the difference is between a "true" lambda and what I have done in quaint vba, where a parameterized function is used as a parameter to a subroutine...
Call <subroutine>(<function>(<argument>)
Someday I'll figure that one out. When I do, I'm sore it will be a forehead slapper!
Brady Kelly wrote: I wouldn't recommend Java as a first, non-necessity, choice at all.
I am trying to pick the next language(s) based on "What can I do with this?" as well as "What can I learn?" IOW, Ada and Pick aren't in the picture.
However, my employer uses a scad of Java, so I might give it a look-see. Necessity may be the mother of Invention, but the necessities need to be paid.
cat fud heer
|
|
|
|
|
Oh wow, didn't know VBA could do that. My reply was more aimed at griff than you - and he should immediately know what I mean. I was reserving a longer and better reply directly to you for later, when I had thinking time
Nothing wrong with learning Java if your employer uses it. It's a solid language for loads of good OO principles, but just a little behind.
No object is so beautiful that, under certain conditions, it will not look ugly. - Oscar Wilde
|
|
|
|
|
Brady Kelly wrote: Oh wow, didn't know VBA could do that.
I know something someone else at CP doesn't! Whoa! Another sign of the impending apocalypse!
Brady Kelly wrote: I was reserving a longer and better reply directly to you for later, when I had thinking time
You were? Does that mean that since I piped in I've ruined it all?
cat fud heer
|
|
|
|
|
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
|
|
|
|
|
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
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
|
|
|
|
|
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#.
|
|
|
|
|
Marc...Thanks for the reply.
It looks like I may need to give c# a look-see based on the number of people talking it up. My only question (for myself, not you) is "What would I do with it?" That question might open a whole case of caviar!
"Duck typing" was a new term for me. That's what I get for becoming a process consultant and project manager, eh? I feel like I've been out of class and need to figure what happened in my absence. Not to worry, though. The 15 minutes I spent reading about it just now was time well-spent and a bit humoirous. It reminded me of an early data modeling effort in which we spent a day driving the model to complete abstraction until we realized the assumption was "If the data doesn't fit, the error routine will pass it by."
...and thanks for the links in your sig. Getting back into programming I need to think at a higher level than syntax and error handling routines.
cat fud heer
|
|
|
|
|
BiggerDon wrote: My only question (for myself, not you) is "What would I do with it?"
Well, I'll answer anyways! I'm looking for people wanting to contribute to HOPE - developer roadmap[^] and would be more than happy to pick some small projects and offer mentoring services.
Marc
|
|
|
|
|
I may take you up on that. It would be good to stretch myself into someone else's project instead of always playing lone wolf.
cat fud heer
|
|
|
|
|
Ten years ago I was made redundant. I self-studied by buying an old copy of VS 97 Enterprise. Then I shopped on ebay for an old box that I could put NT4 on.
Thus I had two boxes, the vintage one with all the visual studio boondoggles from 1997, and my main one with the Express versions of vs 2005, for learning C#, VB.NET, ASP.NET and ADO.NET.
Then I started working through second hand books.
What did 97 teach me? COM, MFC, Win32, VB5 OOP(almost the same as VB6, which still sells at a huge premium),Databases, simple Access, SQL Server, client-server, Crystal Reports.
I also picked up a third box to play with Linux.
Of course with all these boxes I needed networking and pipes. To learn remote sql server programming for example.
Within 2 years(I had commercial vb and C already), I was being flown out to Amsterdam and Belfast for interviews
Meaning, you start small, but growth doesn't have to cost the Earth. And Dan Appleman(the software author and entrepreneur), replies to requests for help with free copies of his old stuff and friendly encouragement.
|
|
|
|
|
Simon, Thanks.
I'm not much of a server/com guy. I can set up a home network and share printers, but that's about it.
I see bigger lessons there, i.e. learn what you need and try to have multiple platforms. Since I had been doing most of my work in MS-Office VBA I've done what I can there. I own one Win8 machine with Office 2013 and another with WinXP/2007. By luck, the laptop my employer provides has Win7/2010. My thought when picking up the Win8 machine last month was that gives me 3 environments for testing, even being a lone wolf type.
cat fud heer
|
|
|
|
|
BiggerDon wrote: What would I do with it?"
Pretty much almost everything. And now with the great Visual Studio Community Edition[^], you have the best IDE, full featured, for free. And you can worry about the many frameworks that supports C#, to name a few:
- Web Development: ASP.net (WebForms, MVC, Web API, etc)
- Desktop Development: Console, Windows Forms, WPF
- Middle-ware Services: Web Services and Windows Services through WCF
- Embedded Systems and IOT (Internet Of Things): .Net MicroFramework
All of this with a great community support.
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
|
|
|
|
|
Thanks, Fabio.
I was thinking more in line with "What problems are nearby that I will solve with that?" As I said, that was more a question for me than anyone else. I see your answer as "Where can I find opportunities to use this?" What you've given me is food for thought on my question.
Also, thanks for the link to Visual Studio Community Edition. I've been stumped in the past with "Ok, that's nice, now where do I get my hands on the environment?"
cat fud heer
|
|
|
|
|
I'm glado to help. I believe you will be pleasantly surprised on the power and ease of use of Visual Studio
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
|
|
|
|
|
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 so I can learn something that is marketable.
Along the way I may run into things that need a solution like how to store data for a web app.
RSS Reader
Recently, I wanted my own RSS reader which would allow me to store my RSS feeds and pull them up later.
I ended up using (and learning) AngularJS (Google) and Firebase API (data storing on web). You can see that project here at codeproject: FreedReadR: RSS Reader Created With AngularJS (part 2 of 2)[^]
Conclusion
1. Make something.
2. learn the technology you need to make that thing.
3. be happy.
|
|
|
|
|