|
This is what I think...
First Thing To Do
Ask yourself what you'd like to build.
Do you just want to build a game? Is gaming your thing? Then start a simple project that allows you to build a game.
Would you like to build a journaling app? Something where you could save daily entries that store your activities? Then start a project that does that.
My point is that _programming is boring_ (for the most part). So you got to...
Keep yourself interested.
However, if you choose a project and try to get to it, you very well may fail (simply because you don't have the skills yet).
That's why the second thing you have to do is:
Don't View Missing the Goal as Failure
Even if you don't make it to the goal you will have learned a lot.
The Project Will Guide You
IF you do this, the project will guide you through learning the basics :
setting variable values
control structures (for, while, if, etc)
etc...
A Lot of People Who Just Try to Learn To Program End Up Quitting
Programming is full of nit-picky details and annoyances and options.
That's why if you just try to learn to program you may very well become bored and quit.
So, start thinking of what you'd like to build and then go build it.
Which technologies to focus on first?
I suggest HTML5, JavaScript, CSS.
Why?
1. It's everywhere. You can show your friends what you've done by loading it in a web page.
2. You don't need any special tools (just web browser and text editor)
3. No need to learn deep details (yet) like program compiling etc.
Beware JS!
However, as you start out with JavaScript, just beware. You can learn bad practices and do things that work that create problems in the future. Later you'll take the next step, but for now, just learn to get things working and promise to learn later why things should not be done certain ways.
Good luck.
PS - If you need some ideas of interesting projects, post back and I'll give you a couple.
|
|
|
|
|
Thank you so much!
I know of a few things I'd like to build already. I definitely want to build an odds website for sports metrics, (I'm a big leafs fan) and I have a couple ideas for different apps that I would personally find useful.
I sat in on a couple bootcamp recruitment video calls, and a lot of the instructors mention the same thing in regards to bad practices. It is something I'll have to be conscious of.
|
|
|
|
|
Related to raddevus's comment: find project's you like and find out what it took to make them. don't guess; even write to the companies to find out.
|
|
|
|
|
I agree with the above. However, I took a different path. I got a book like O'reilly's C# book. I created every example in the book from scratch. Most of them didn't compile, so I fixed them. Once I got it to run, then I moved on. Just reading the book, I wouldn't have learned anything. When one book was done, I grabbed the next.
My list of "things to learn" would include XML, SQL, and a C-based language (like C++, C#, or Java). Almost no matter what you are working on, these will be useful at some point. Many other skills and concepts build on these 3 basics.
As for SQL, don't worry about the advanced stuff, but at least learn the basics. Everything uses SQL at some point. There is a free version for all the major database management systems (DBMS) (Microsoft, Oracle, MySQL, etc.).
Bond
Keep all things as simple as possible, but no simpler. -said someone, somewhere
|
|
|
|
|
Matt Bond wrote: I agree with the above. However, I took a different path. I got a book like O'reilly's C# book. I created every example in the book from scratch.
Great point. I did the same way back in the day to learn C++ (with my trusty Dummies book).
|
|
|
|
|
Well said. You covered some thoughts I had but above and beyond and better than I would have been able to. So, yes, ditto on this. OP, you are probably going to want to go with web skills and yes, pick a project to help you learn. And always make sure to learn how (the tools, and get setup) to debug your code as you will hit a wall otherwise and not know how to overcome it - a debugger will bust through that wall and keep you moving.
|
|
|
|
|
Kent K wrote: And always make sure to learn how (the tools, and get setup) to debug your code as you will hit a wall otherwise and not know how to overcome it - a debugger will bust through that wall and keep you moving.
Agree 100%! Great addition.
|
|
|
|
|
If its JavaScript you want to learn, as reported in one of our Newsletters recently, Microsoft has a free 51 part course on JavaScript at Beginner's Series to: JavaScript | Channel 9
Also intro to C# C# 101 | Channel 9
And starting at Page 3 of the Shows Listings, there are a number of free video courses on a number of topics and languages.
"Time flies like an arrow. Fruit flies like a banana."
|
|
|
|
|
When I first got into programming, what fascinated me was not the tools, but how you had to approach the problem in a very analytical, systematical manner. Break down the problem at hand in well identified sub-problems, in multiple levels, and understand how those sub-problems could be solved and combined into a complete problem solution.
I was fascinated by the formal, systematic approach to problem solution. Not by the tools themselves. There was recently another thread, about "The no-code dream". I still have that dream - that you don't have to have an M.Sci in programming to do something useful. Anyone with a full understanding of their problem, and with a full understanding of the solution to it, should be able to realize this solution without the help of any M.Sci programmer.
We are not there yet. Not even after fifty years of programming. Yet I just can't let go of this idea that the first and foremost responsibility of software developers is to help the customer understand his own problem. And then to help him devise the solutions required. Once that is in place, any coder may code the solution.
Making the customer fully understand his own problem, and then helping him to an understanding of the solution, does not have to require an M.Sci in programming (although to me, that was what taught me analytical problem solving methods).
I think far too many students (and more today than a generation ago) come to programming because they are fascinated by the tools, rather than by the challenge of problem solving regardless of tools.
Maybe you should seriously consider where your interests lie. You may aim at being a super-coder, caring just so-and-so about the customer's real problem, or you may focus on the problems, giving less attention to the wars between different languages and platforms. A generation ago, I think an education in programming was mostly program oriented, but today it is tool oriented. The tools have become so complex that you do not have time to worry about the customer, if you want to be fluent in all the platforms and frameworks and tool suites...
If that is what fascinates you, then you may of course go for it (and for a degree in programming tools), but even though I do have a Master's degree in that direction, I certainly wish that I had been much more focused on solving problems in the domain of the customer, rather than solving tool problems.
|
|
|
|
|
Saying "I want to program" is like saying I want to cook; then asking what to cook.
You at least need to start with what "type" of cooking: French, Asian, Italian, Fast, Cheap, etc.
You narrow your options by picking a "genre", like: scientific, gaming, data analysis, business apps, etc.
Then you can refine your plan and pick a learning strategy.
(Coding is not fun if it's your only job and you're not making money with it.)
It was only in wine that he laid down no limit for himself, but he did not allow himself to be confused by it.
― Confucian Analects: Rules of Confucius about his food
modified 8-Oct-20 18:19pm.
|
|
|
|
|
listen to this person!
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
|
|
|
|
|
|
Back in the day I started with a book. I bought books on C then C++ and learned the basics from them. A lot cheaper than boot camps. After that I started taking CS classes at the local college where ever I was stationed at in the evening. Never finished my BS in CS but have been working as a dev for over 20 years now.
|
|
|
|
|
Everyone has their own preferred way of learning, but I strongly prefer tutorials in which I set up a compiler or IDE on my own computer and create a functioning app. You first need to decide what interests you, pick an appropriate language, then pick a tutorial.
|
|
|
|
|
|
There are many ways to change careers and become a successful programmer. I have trained dozens of programmers using this method. It is not the quickest, nor the easest but all of the people I have trained have ended up being successful senior and principal-level programmers at major software companies.
The first step you should take before you even begin to think about programming is to learn how the computer hardware is organized, how information moves between disk, memory, video, network, and so on. Either sign up for an introductory computer hardware course or read some of the tutorials about CPUs and computer hardware that are freely available on the internet.
The next thing you should do is learn some assembly language. You don't need to spend a lot of time on this a few hours and writing a couple of hello world type apps will suffice. Your goal is to understand what the language the CPU understands and what it can and cannot do. This provides you with a foundation on which you can build your skillset.
The next step as many have stated is to decide what area of programming you want to focus on. Learn all you can about that area. While you are doing this read lots of code. Yes, read code don't bother about writing it yet. While you are reading other people's code spend some time analyzing it. What did the code do well? What might have been done differently what problems might exist? What do the authors say about their code? This will help you to understand how code is put together, how it solves problems, and increase your knowledge of algorithms. While you are at it get the Algorithms in C (Computer Science Series). Study all of these.
Finally, pick a program in your chosen area to solve and begin designing a program to address this area. Figure out what options should be available, how these options will work, and how they connect together. How will information be stored? How will it move from place to place? What will the user experience be? Once you think you understand how the program will work and operate you can begin writing it. Expect your initial progress to be slow, expect to discover that things don't work the way you thought they should. Regardless, keep at it. Eventually, you will work through the issues, learn a lot about programming, and build confidence.
At this point, you can start looking for entry-level positions in your area of expertise. Open source and publish your solution. Many employers love being able to see good code and documentation as it lets them understand how you solve problems and the quality level of your code.
If your solution is complete, choose another problem in your chosen area and repeat the process. Keep learning and adding to your knowledge.
One thing to note, your computer programming language is less important than being able to solve problems. Most computer languages now days are similar and have similar structures and concepts. Most are variants of C or C++. There are differences of course and each language has its own unique attributes but if you know how to solve programming problems you will not have any trouble moving from one language to another.
|
|
|
|
|
While I'm still fairly green myself, I find actually creating something is the best way for me to learn. I would think of some project you would like and start to build it. I also might suggest even starting with Arduino. It is very satisfying to code something and see the results instantly. It is C and C++ based IDE that is free and and easy to use. The Arduino microcontroller are very cheap. As some others have said it's not learnig the language but rather problem solving.
Bryan
|
|
|
|
|
|
Google copied some "method names"; Oracle says, you can't do that, those are "our names"; our vocabulary.
So, next time you decide to "build a better mouse trap", but use the same "word" to talk to it, I'll sue your **s off.
It was only in wine that he laid down no limit for himself, but he did not allow himself to be confused by it.
― Confucian Analects: Rules of Confucius about his food
|
|
|
|
|
Gerry Schmitz wrote: I'll sue your **s off.
Maybe wait for the result of the G vs. O case before suing.
|
|
|
|
|
I was being rhetorical. Myself, I couldn't care less or have the time.
It was only in wine that he laid down no limit for himself, but he did not allow himself to be confused by it.
― Confucian Analects: Rules of Confucius about his food
|
|
|
|
|
|
Do remember that the only people who get rich buy sueing is ... lawyers.
There was a British legal dispute between three brothers over their fathers will which ended in 2006: after 43 years, all of the estate had gone in legal fees and none of them received anything ... two of them had already died by that point!
"I have no idea what I did, but I'm taking full credit for it." - ThisOldTony
"Common sense is so rare these days, it should be classified as a super power" - Random T-shirt
AntiTwitter: @DalekDave is now a follower!
|
|
|
|
|
I don't think it's about the money; it's seeing what you can get away with (and $9B). They're peeved that Google has Android. This is like WINE and Parallels.
It was only in wine that he laid down no limit for himself, but he did not allow himself to be confused by it.
― Confucian Analects: Rules of Confucius about his food
|
|
|
|
|
|