|
When I retired around 2009, I really got stuck into C# and Windows Forms for the first time. Prior to that I did a lot of embedded C and C++ with MFC. Working most days in retirement it took me years to get reasonably proficient in C# and WPF, including MVVM and the Prism platform. Lately I am getting into UWP. The frigging learning never stops. I've been at it for 8 years!
Get me coffee and no one gets hurt!
|
|
|
|
|
Cornelius Henning wrote: Lately I am getting into UWP*. The frigging learning never stops. I've been at it for 8 years!
I agree. I remember, back around 1998/99 I we had these huge Netscape Enterprise Server (old dead web server) logs (in excess of 5GB per day) and we needed a good way to extract data.
PERL bubbled to the top and I started looking at it and hated the syntax.
I was resistant for about 1 week, then I jumped into learning PERL.
I decided at that moment that was what the IT world was all about. Learning new stuff continually.
Fortunately (as I'm sure you know too), much of the foundational knowledge really is there in every language and things just repeat themselves.
*Gratuitous self promotion --- Have you read the 15 chapters of my book here at CP?
I just completed Chapter 15: Programming Windows 10 Desktop: UWP Focus (15 of 15)[^]
You can get the Kindle version at Amazon too ($1.99).
The articles / book contains over 350 screen shot images which walk you through the material.
|
|
|
|
|
I wasn't aware of your book. I'm going to check it out right now!
[Edit] I don't have a Kindle. I'm way too old-fashioned for that! So I ordered the paper copy from Amazon a minute or so ago. (Shhhh: Don't tell anybody, but I also learnt your real name in the process!)
Get me coffee and no one gets hurt!
|
|
|
|
|
Cornelius Henning wrote: Don't tell anybody, but I also learnt your real name in the process!
Oh no, what will I do?
Thanks so much for checking out my book. That is very kind of you and I really hope you enjoy it.
|
|
|
|
|
Quote: I really hope you enjoy it. I'm sure I will. I will let you, and others, know!
Get me coffee and no one gets hurt!
|
|
|
|
|
Cornelius Henning wrote: I will let you, and others, know!
Thanks, again, very much. really nice.
|
|
|
|
|
dandy72 wrote: While I do love me a good programming book designed to be read from cover to cover, is anyone still publishing valuable books on recent topics?
Yes. O'Reilly.
|
|
|
|
|
This is not something that is easy to get into without a good degree in the discipline, and some experience - typical Catch 22, I'm afraid. However, if you still want to proceed I would agree with OriginalGriff that C# is probably the best route. Get hold of a copy of Visual Studio Community 2017 from Visual Studio Express | Now Visual Studio Community[^]. And a good starter teaching guide is Dot Net Book Zero, by Charles Petzold[^], although it does assume a reasonable understanding of the basics of programming.
|
|
|
|
|
I have found that books containing exercises have helped me a lot.
In particular the 24 Hour series of books(SAMS teach yourself series), although not hardcore manuals, have helped me a lot by taking me through projects within the books learning as I go.
I agree with others who say to start with C#. C# will teach you good programming habits and knowledge if you are disciplined and from there you will be able to pick up javascript and sql as you go along.
We all have different ways of learning and I find the best way for me to learn is to decide on a project which is beyond my current ability and to complete that project - of course if you are just starting out it probably helps to have some background first.
You don't have to decide which direction to take from the very beginning - thankfully, or maybe not, nowadays in IT one is generally expected to understand a lot of different areas but not necessarily in depth, so you don't have to become an expert in communication protocols unless of course that is want you want to be an expert in.
“That which can be asserted without evidence, can be dismissed without evidence.”
― Christopher Hitchens
|
|
|
|
|
The first decision is what to learn by deciding for what you want to develop. Have any idea what job you may get?
The mobile market is red hot and you may start with Android Studio or Visual Studio for PCs, but my advice is also to think about web programming. Coding websites isnt so easy as people think, because a lot of skills beyound HTML, CSS and graphics is needed. Javascript and PHP a full programming languages. The advantage of web programming is that is easier to start, always job offered but not so well paid like programming C++ or for Apple.
Search on Youtube for some tutorials with a lot of lessons in programming. Compare some - there are bad, good and some outstanding.
Press F1 for help or google it.
Greetings from Germany
|
|
|
|
|
Just up-voted Karsten's post - breaking into "coding" is the wrong way to think about it. We solve problems with code, so you really have to ask yourself what problems do you want to solve. I mainly work in the embedded side of things - I like talking to hardware, but I'm an electrical engineer, so it fits.
Others are compiler freaks - really smart people who are locked in labs and fed by remote (just kidding).
There are those of us that reduce what we know about control systems and aerodynamics and help planes fly.
Some do web sites, and as already mentioned, mobile is red-hot. The list goes on an on.
After a few years, you sort of know what you like working on and gravitate in that direction. I don't know what you do for a full time job, but one thing to consider - can you sit staring at the screen for hours on end designing, writing, deleting and re-writing, and debugging? Of all the children I have had, not one has said to me, "Gee dad, I wish I could sit in front of a computer and code all day like you." In reality, they ask me, "How do you sit there all day? Oh, can you fix my car?" Truth is - I love it.
It's okay to not have a clue - so pick 3 and be prepared to toss them if you don't like what you are doing. Creating a simple web site would be a good start. VS2017 will hold your hand doing this. Best way to figure it out is to pick a problem and try to solve it. Keep the problem VERY restricted. Many developers have had their heads explode trying to get a grip on what Microsoft is doing. The web world is even worse than Microsoft.
Charlie Gilley
<italic>Stuck in a dysfunctional matrix from which I must escape...
"Where liberty dwells, there is my country." B. Franklin, 1783
“They who can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety.” BF, 1759
modified 1-Jan-18 13:55pm.
|
|
|
|
|
Here's a test:
0) How many different ways can you come up with the answer "73"?
1) What are the properties of the number "73"?
Yes, there's a reason I'm asking both questions, and I can predict your level of success based on your answers.
".45 ACP - because shooting twice is just silly" - JSOP, 2010 ----- You can never have too much ammo - unless you're swimming, or on fire. - JSOP, 2010 ----- When you pry the gun from my cold dead hands, be careful - the barrel will be very hot. - JSOP, 2013
|
|
|
|
|
I thought it was 42.
I'm retired. There's a nap for that...
- Harvey
|
|
|
|
|
Saw the answers above and I don't disagree with the advice,
but,
first think of what you want programs to do.
It's like saying "I want to make food" - what food? simple dinner, cordon bleu, cakes, dessert, ...
c# is a good choice, but if all you want is a website it's like using a 283 piece tool set to change a flat tire or even change the oil on your car. For say websites there are far better ways to get into that. (much lower learning curve, far faster presentable results, all around easier). Take a look at w3schools where you can actually learn and try it online - no need to install anything. Within a week or two you can have a site with some really amazing effects, pictures that fade in/out, forms that change depending on answers, mouse pointer changing shape as it moves - using c# it'll take a beginner a few months or more to get even close to those same effects.
So yes you can do all that in c#, Visual Studio, ASP, .net... too, after also installing IIS and a few other bits and pieces (- as a beginner add minimum a week just to get that all together before you even start). And yes it's all free, but oh, you also need a fairly respectable rig for it to be effective, whereas all you need for w3schools is your browser - chrome, firefox, edge or even internet explorer - what you are using right now.
If you want to go up a class from there why not rust (it's in the top 5 of languages employers are looking for - true c# is top 10, but rust is ahead) - and again there are fully on-line learn & try sites, all you need to start is that very same browser - rustbyexample.com and play.rust-lang.org
There's in-between options, more advanced options, free on-line, no need to spend a frustrating week downloading and setting up. (Remember those that suggested visual studio or/and c# have done it before, like a chef telling you it's easy to properly fillet, spice and saute a fish and dress the plate - but why invest in the equipment (even for free) and learn all that if all you want is to make scones (or "biscuits" if your from USA)
Once more: first think what food you want to cook, then search/ask for advice on more pointed to those goals.
Signature ready for installation. Please Reboot now.
|
|
|
|
|
Jon Desrocher wrote: what’s popular?
I suggest strongly that you look for jobs in your general area now so you have a realistic idea about numbers available. That way you can start on something specific. You can use the various online job sites and type in different languages to look for junior programming positions. So like the following
C# junior
Java junior
JavaScript junior
etc
I have also found 'associate' to be a common word used as replacement for "junior".
Following is the best language usage site I have found.
TIOBE Index | TIOBE - The Software Quality Company[^]
Of the top languages.
Java/C#/C++ are similar in general nature, while C is not. So moving between the first three are easier with experience.
C++/C is going to be more useful for "Internet of Things" in relation to "embedded programming" (google that and read several sources about what it is). Experience in embedded programming does not translate well to other businesses and opposite is also true. So if you prefer it you would need to focus on it.
Python and Javascript experience does not translate well to using other languages. However Javascript is likely to be more viable as a broad market skill.
|
|
|
|
|
Jon Desrocher wrote: What’s the best path for steady job outcome?
Years of experience and luck. Sorry, but that's the truth of it -- you have a loooong path ahead of you.
Next wisdom: Find a mentor. While there's a lot of good sites out there about learning programming, a mentor can help keep you focused and teach you things that a course can't. Most importantly, a mentor can become a reference you can use when applying for a job.
Make the following decisions right now:
Pick one: Web development, desktop development, or back-end (no UI) development, such as databases or services, or IoT (Raspberry PI, Arduino, Beaglebone are three common IoT devices.)
Pick one: A programming language. I'd suggest you pick from this list: C#, Python, or Go. If you chose web development above, Javascript is a given.
Briefly - if you choose C# or Go, you'll probably develop a disdain for duck-typed languages like Python. If you choose Python, you'll probably develop a disdain for strongly typed languages like C#. If you chose web development, you'll develop a disdain (to put it mildly) for Javascript. It's just the way it works. If you chose database, SQL or NoSQL comes along for the ride. If you chose IoT, Python is strongly recommended because there's a huge code base out there.
Pick one: Windows or Linux. If you chose IoT, you will be in the Linux world and most likely Python, but I've been pleased with C# / .NET Core 2 in Linux. If you choose Linux and Python, a LOT of what you write can also run directly in Windows as well. Same with Go (I think!)
Don't concern yourself yet with what tech industry you want to jump into. It's way to premature to think of that.
Advice: I almost always try to learn a language by programming a simple game. And I mean simple. Tic-tac-toe. You can then advance to something like checkers (two real players, no AI!!!) I enjoy coding Hunt the Wumpus in a new language.
The above exercises help you to learn the indirect skills such as using the IDE, how to do debugging, how to set up source control (Git is my personal recommendation), etc.
After demonstrating minimal competency at the above, further pathways can be explored to develop your skills.
Last suggestion: As I enjoy mentoring, I'd be happy to help. Email me directly if you want. If you chose Go, then we both get to learn something as I have no experience with Go. The other options I can handle.
|
|
|
|
|
I have always liked the books by Apress. Take a look at this:
Quote: Pro C# 7: With .NET and .NET Core 8th ed. Edition At Amazon. Troelsen and Japikse are great authors.
Get me coffee and no one gets hurt!
|
|
|
|
|
If you were suited to it, you'd already be doing it.
|
|
|
|
|
Congratulations on your desire to learn how to build software and welcome to CodeProject! You may find this answer[^] on Quora helpful.
/ravi
|
|
|
|
|
Or how 'bout this one[^]...
I'm retired. There's a nap for that...
- Harvey
|
|
|
|
|
Best advice I've heard and been given is:
Find a project. It could be a basic website to show holiday pics, or a mobile app that shows a joke of the day, or a desktop app that reads in a spreadsheet and outputs a simple report. Something you need or something you think would be cool. Focus on that, choose your poison (I mean, language), ask around about the franeworks, libraries and free code available for that language, and dive in.
Learning by theory will only get you so far. Get your hands dirty and see if the bug bites. If it does then you're set (and a lost cause, like the rest of us!)
cheers
Chris Maunder
|
|
|
|
|
Chris Maunder wrote: Find a project ... and dive in.
/ravi
|
|
|
|
|
Chris Maunder wrote: Best advice I've heard and been given is:
Now I'm curious -- what was your first foray into programming? Language? Platform? Motivation to learn to code?
Latest Article - Code Review - What You Can Learn From a Single Line of Code
Learning to code with python is like learning to swim with those little arm floaties. It gives you undeserved confidence and will eventually drown you. - DangerBunny
Artificial intelligence is the only remedy for natural stupidity. - CDP1802
|
|
|
|
|
It was odd, really, though maybe a familiar story.
I had a friend who could program BASIC and I thought that was pretty cool. In High school all we had were about 3 BBC computers that we used to muck around with, but in College (that's year 11 in Canberra where I grew up) they had actual XTs so I took a course in Pascal. I sucked pretty badly the first year - it didn't gel - but over the holidays I bought a book, read it a couple of times, and suddenly it clicked an I was lost. I ended up with 103% for my final course score and went on to do summer jobs coding for food.
My main motivation after the initial hit was in my physics degree. I needed (OK, wanted) to be able to graph the results of our lab work and there wasn't anything available to do what I needed so I spent roughly 98% of my lab time perfecting my code and making it awesome and the rest doing actual science-y stuff.
cheers
Chris Maunder
|
|
|
|
|
Chris Maunder wrote: ...and the rest doing actual science-y stuff.
Mud cake making is not science-y stuff.
Michael Martin
Australia
"I controlled my laughter and simple said "No,I am very busy,so I can't write any code for you". The moment they heard this all the smiling face turned into a sad looking face and one of them farted. So I had to leave the place as soon as possible."
- Mr.Prakash One Fine Saturday. 24/04/2004
|
|
|
|
|