| I started reading Hacker News about two years ago (freshman year in college), and I was instantly motivated to start coding. I decided to major in EE, and I've done well in my C/C++ programming classes. I also picked up Python and R for some work on personal projects. However, almost all of my coding has been limited to the command line. Although its been fun, I've been interested in designing a web-app for a while. Some of the posts on Hacker News make the process sound so easy, so I finally built up the motivation to start. I decided to use Python as a backend, since I know that language best. I chose Flask as my web framework because it's supposed to be one of the simplest frameworks for Python. Unfortunately, I'm struggling to understand proper file structure and basic features such as blueprints, forms, models, and controllers. Most Flask tutorials go over these terms too quickly for me to properly understand them. I wanted to manage users on the web-app, so I needed a database. I picked SQLite. Just like with the frameworks, I had to pick a solution without even understanding what the solution was doing. Fortunately, SQLite and databases haven’t been as difficult to pick up as Flask. To control my web-app’s appearance, I picked up HTML and CSS. The tutorials on w3schools were nice, but I couldn't imagine building an entire app manually. And then I came across Bootstrap! It's an extremely helpful framework, but again, it's another tool I've had to learn. One feature I wanted was interactive graphs, so I went to JavaScript. Codecademy helped me with the syntax, and I eventually found the Highcharts library. This has been the easiest tool to learn due to their comprehensive documentation. Learning these tools individually is tough. Making them work together is even tougher. The posts on Hacker News make the web development process seem so easy. Was everyone's first experience this rough? |
It looks like you're starting out too big. If you want to get started with web development, I really would advise against using a backend MVC framework, a front end framework like Bootstrap AND interactive graphs with Highcharts/Javascript for your first app. I guarantee you will be put off by using them because you won't know what it is they do. Frameworks and libraries are great for increasing productivity, but horrible for actually learning. You don't start learning Chinese by reading Sun Tzu in Chinese, you start by learning to say 'hello', right? This goes for frameworks too. Eventually you'll need them, but now is not the time.
If you want to be a decent web developer, it's essential that you learn how things work from the beginning. Frameworks don't teach you that. I really suggest you try to build a simple app from the ground up. Nothing fancy, just a simple time tracking app, personal page or something. Or start with just a static HTML/CSS page. Add a database/server side later when you get the hang of HTML/CSS. Done? Begin sprinkling some jQuery in it. By this time you can begin thinking about frameworks.
It's a long road, sure. But if you begin small there's a much, much better chance of mastering web development. Just make sure to steer clear of W3Schools. They don't have nice tutorials, okay? It's like saying 'I went to McDonalds and they had this really great gourmet meal...'
The web is littered with tutorials about web development. Some free, some paid, some old, some new. Pick your poison, see which one works for you. If you need some guidance and extra motivation to push through (because you're paying for it!) I can recommend Treehouse (www.teamtreehouse.com). Well worth the $25 a month. Good luck!