The Lounge is rated Safe For Work. If you're about to post something inappropriate for a shared office environment, then don't post it. No ads, no abuse, and no programming questions. Trolling, (political, climate, religious or whatever) will result in your account being removed.
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!)
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.
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.”
The first decision is what to learn by deciding for what you want to develop. Have any idea what job you may get?
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.
<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
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
Saw the answers above and I don't disagree with the advice,
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.
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
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.
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.
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: 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.
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!)
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.
"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