Hey guys! I hope its okay to post something like this because I don't want to spam your feed.
I work a normal job 40 hours a week. My shift ends at 6 pm every day. I want to learn how to code to work on passion projects etc. I tried studying every day in the evening but that seems somehow impossible. I'm really tired and I just want to relax.
Do you guys have some tips for that situation? Did anyone teach themselves how to code while working?
Disclaimer: I taught myself to code when I was a teenager without the worries of having a job, and later ended up going to uni for it. So my situation might not be exactly the same, but I hope I can be a bit useful anyway.
The beautiful thing of software engineering is that there's a plethora of resources freely available online. From free ebooks, to youtube videos and university MOOCs. If you want to spend some money on it, there's solid books out there as well.
It's probably a good idea to have an idea of what exactly you want to learn. Are you interested in building web applications? Mobile applications? Games? Mainframes? (prob not mainframes).
Next you need to know which language you need to pick up. Sure you can spend hours reading theory first - but after work you want to do something tangible. Hence I'd recommend finding a language that appeals to you and then dive into that. I'd suggest looking into Python, Java or JavaScript. Bonus advantage of these is that should you ever want to program as your main job, they'll make that transition easier.
It's going to be hard to learn to program though - there's no way around that. And it'll be frustrating at times. As the saying goes "Give a person a program and frustrate them for a day, teach a person to program and frustrate them for a lifetime".
But as I've mentioned, do something tangible. Use a language that helps you build small things on day 1. It'll be easier to stay motivated if you see the results.
Also, don't stress about skipping a day in studying, or for not doing enough. You should have fun doing this, so don't worry too much. If you're too tired one day - skip it. If you're consistently tired - try doing it in the weekend. Or during your commute etc.
As others have mentioned, sleep, diet, exercise they need to be in check. At least the sleep and diet part. If you have a heavy dinner you'll be sleepy ;-)
Sorry for writing a book - but if you want you can DM me / shoot me an email and we can have a chat about it. :)
Don't worry writing a book I don't mind them at all! There's some good advice on this one! Thank you :)
You're most welcome :D
Try onemonth.com. They have individual classes or a year long pass where you can take a bunch of classes at your own pace. It’s all project based so you learn to build as you go.
Nice! Not seen that before.
Looks pretty cool! Bookmarked this on! Thanks:)
Working on projects and studying after work is difficult. You're hungry, tired, and you've used up all your brain power while at work.
My advice is to change your morning schedule.
Instead of having your free time be from 6 pm to 12 pm, reverse it. Start your day much earlier, and go to bed earlier.
For example, my work schedule is from 10 am to 7 pm.
I wake up at 5 AM, and get my morning routine done till 5:30 AM, where I have around 2 hours and 30 minutes to work on things I'm passionate about, before I get ready for work.
It's a sacrifice you have to make. Either you can muster up the courage to work through your tiredness after work, or you make a change to your habit.
YES! Doing it earlier in the morning works wonders!
I have never considered myself to be a morning person. I used to sleep from 0am to 9-10am, when my alarm was actually set to 7-8am and I always used to hit snooze. I changed my sleep schedule to 9pm-4am* and I wake up with a lot more energy than usual - our body rests better if you sleep earlier because of the way the sleep cycles work.
I used to get a lot tired in the afternoon during the first couple of months, but my body adjusted and I usually feel great nowadays. I don't drink coffee every day, just 2-3 cups a week at most.
So, even if you think you're not a morning person like I thought I wasn't - just do it and you will start feeling encouraged by the progress with your studies, giving you more energy to keep up with the new routine. :)
Another advice is to write up your goal to the next morning in the night before. Write in a paper a realistic goal that you can do in 1 hour of study. It will give you a solid reason to wake up, and after completing it, check off the item in your list. Keep it in a journal (only date and small check list) and whenever you feel discouraged, look back to see how much you've accomplished, it will give you a sure boost to carry on!
PS: * while I do my best to keep it the more consistent possible, that's not always possible because sometimes I have to sleep later due to social events, then I wake up a bit later like 5-6am, including weekends to help maintaining the routine
Word! Currently, I wake up at 7.30 am in the morning. I try to push it to 5 am tho!
That's so true! I need to do this to get going for sure. goodbye staying up until 12 pm
hey, good question!
I would advise you to do coding first thing in the morning when you have the energy. You probably won't want to do it after a long day of work!
Good luck!
Here an interview I did with someone who did learn coding after their full-time waitress job though so it is definitely possible. I'd still do it first thing if possible though when you are fresh.
https://www.nocsdegree.com/from-server-to-developer-in-6-months-how-taelur-alexis-did-it/
I agree. I thought about learning in the morning as well. Seems like I have to wake up a little earlier! I'll look up the interview! Thanks:)
Hi Aaron, sounds like an exciting challenge for yourself. I've done something similar, so I could share what helped me.
Initially I struggled through youtube videos and tutorials (freecodecamp is great). It went slow because it was hard to find the motivation. What really accelerated things for me was starting a project I was excited about. Something that's small enough to work on in my spare time. That feeling of getting closer to launching something motivated me to get up early every day to practice.
Once you get stuck somewhere, it can be hard to find the right tutorials. It's either for complete beginners, or for experienced developers. I was lucky to work in a company with lots of developers I could ask. I have also used codementor.io to get help. They pair you up with an experienced developer for 1-1 coaching which is incredibly useful if you get stuck.
Here's how I learnt to code:
I started out building static HTML pages and writing scripts in Basic when I was quite young. Having some basic vocabulary around data structures and HTML is always useful. I also used a statistics language called R for my thesis work. Everyone starts from a different place, so give yourself time to learn.
When I wanted to get more serious, I started by brushing up on the basic skills. I found lots of help from books like "Learning Python the hard way" and "Javascript: the good parts". Freecodecamp has a great course on web development which I also took.
Going from static webpages and writing scripts in Python to modern web development can seem like a big jump. I've always favoured tools that let you learn step by step. Python Flask is a great example. You can create a webapp in a few lines of code, and there are lots of tutorials available. Deploying it to a server is so easy these days thanks to Heroku.
Learning how to add a database was probably the hardest part. Again, I was lucky since I use SQL at my job. But there is so much that can go wrong when setting it up. Feeling that motivation from an exciting project you are working on is key. Try to find someone to walk you through the set-up, and expect to have to practice this many times before it's easy.
With these tools, you can do almost anything.
When I wanted to add more interactivity to my project, I started to use React. Like Python Flask, the React frameworks makes it really easy to get started. There are some complicated bits to figure out, like understanding what Webpack is good for, but there are tools that lets you skip that like create-react-app.
That's how I did it. It takes a lot of time, but each step was interesting and fun, thanks to always building on some project that I found interesting.
Good luck Aaron!
Thank you, Erik, for your detailed reply! So much information in this one! I'll look everything up :)
Are you interested in doing an interview for No CS Degree? You've explained things really well!
Hi Pete, I'd be happy to. Send me a DM on twitter? twitter.com/321k
Great!
The usual advice is fix your sleep, diet and exercise if it isn't good
After that wake up early. Coding after a long day at work will always end badly :)
I'd say my sleep, diet, and exercise is pretty good. Maybe I need to work on my sleep a little more to wake up at 5 am-ish. You're right after a long day at work not much is happening...
I taught myself code this year too. From zero knowledge to (some) html, css, js, php, mysql, rails to making a few web apps and all. But like you, I couldnt do it in the evenings. So I set aside time on Sundays, half day or so, to do part of a course. Slowly over the months, you'll pick up. I didn't strictly study either - it was more project based kind of learning, which I recommend for something so practice-based like coding.
Glad to see some fellows going through the same thing!
Hit me up on twitter I'll give you the login to the bootcamp I paid for to learn to code.
I followed you!
follow me @send_honey somethings up with my biologistbrian acct
Done!
Can you try to build your passion projects using "No Code" solutions instead? If so there's an opportunity that you'll have an easier and quicker turn around time with them...
You're right, that would be possible. However, I think coding is a useful skill to have and I kinda want to learn it somehow...
Coding is a useful skill to have, but...
Learning to code isn't required in all cases in order to work on passion projects.
Ask yourself... What's more important?
Number 2 can take years, number 1 can take weeks/months.
I make these statements only because of:
Would entertaining a different approach (no-code versus learning to code) be practical?
Yes, thanks for the heads up. I think you have a point here and I consider it already.
Would it be useful to have example projects, already set-up (and mostly coded), aligned with simple and clear tasks? This is something that I'm putting together right now. The idea is that you can learn by doing while working on interesting real-world projects without needing to start at a blank editor.
The tasks could include adding a new feature, fixing a bug, etc. With each task, you would receive project source code and written/video guidance about where to go, what to do, and how to test/verify your changes.
The projects would be simple enough for a beginner to understand but not trivial- bigger than a "hello world", smaller than a full-featured CRM- something about the size and complexity of a to-do app.
I don't quite understand your reply
I've always found the best way to learn a new programming paradigm (language, framework, library) is to have good, working code examples that I can play with. The problem is that there aren't a lot of projects available which are both appropriately complex (not too simple as to be trivial, not too difficult as to be just plain hard to understand). Furthermore, there isn't much in the way of projects that a beginner can grasp that offer both a) good examples of proper coding practices, and b) specific changes for the learner to make.
Imagine that you wanted to learn Java/Python/etc.: do you think it would be helpful to have a library of projects with code you could download? Especially if these projects came with specific tasks to do, for example: "change the account registration API to include an optional field for middle name". A task like this would come with documentation that would help walk you through the project and guide you through making the suggested changes.
I think it would be beneficial to have some code examples. Especially as a beginner. Can you share what you are building right now?
Here you say that you want to just work on passion projects, but in your bio that you want to work in the tech industry, which are two very different goals.
If you want to just build projects by yourself, even project that can become companies, just find the right no code tools. There are very very few things that can't be done with no code.
If your goal is to work for a tech company is another story. In that case, study before you go to work. It will require a shift in your daily habits but it is the best way to do it.
For me personally I learn so much better by following along with video courses. I find paid sites to be completely worth it. The quality is usually 100X better than the free YouTube vids. I'm a big fan of Pluralsight, but recently subscribed to Vue Mastery as I'm trying to learn more front end.
You're right, the quality is better most of the time
I would suggest starting with Python and Processing to learn syntax and programming concepts. Python is the easiest to pick up and Processing gives you immediate gratification when you see the result. After a few weeks seek more advice. You can start here: https://github.com/maciejjankowski/learn-to-code/wiki/Learn-to-code
If you need help just reach me out - I'm working to make it more user friendly
Thanks! You're the first one who adviced learning Python first! I thought I need to start with html css java and then get into python etc.
I suggest starting with python because it's the only language that's both easy to learn and also allows you to immediately use it to build web apps (just add django or flask frameworks later on). Java's syntax is prohibitively complex as a first language and doing web development is also much harder
Sounds good!
I tried but later figured out that coding isn't required (read necessary) to build the MVP. There are various tools out there which can help.
But if you still want to learn freecodecamp is a good place to start.
You're right! It's not needed. However, I feel like I need to learn it. Already bookmarked freecodecamp :)
Build up the habit buddy.
Every day do a half hour. Then increase that to one hour and so on!
Good luck :)
Will do! Thank you:)
You are very welcome, buddy!
Learn Elm: https://pragmaticstudio.com/elm
Learn Elixir: https://elixirschool.com
And enjoy yourself 🍵😇
Oh wow, so many replies! Thank you for helping out! You guys are awesome :)
Laravel + Laracasts!
This comment was deleted 6 years ago.
This comment was deleted 5 years ago.
I think I am more of a classroom guy myself. I am based in Cologne, Germany.
This comment was deleted 3 years ago.
Thank you for the advice :) I'll look it up!