881 karma · joined June 3, 2012
[ my public key: https://keybase.io/pizzapanther; my proof: https://keybase.io/pizzapanther/sigs/jdIUqojgj89qC1fTqrl3F0lQUw4AO_nI9QKMsgXiLQs ]
If you are learning basketball and only did the fundamentals you would be practicing drills your whole life. Drills are important but don't teach you everything you need to know. You need to practice the fundamentals in the context of a game or you will not get good.
Learning frameworks can definitely be detrimental too but for a beginner, a framework is often a real world example of how some fundamentals work. Einstein said "Learning is an experience. Everything else is just information." Learning fundamentals is just information. Practicing them in a real life situation is learning.
So I like to learn new frameworks to figure out how principals I've never used before work. Sometimes I'll continue using the framework and sometimes I don't. I think it is definitely prudent to limit how many frameworks you learn but it is wrong to throw them out totally.
To address one of the problems, Running Scripts: basic complaint is you are starting a new shell always and you have to prefix all commands.
Prefixing commands sucks but you can get around it pretty easy with an alias.
alias pr="pipenv run" alias dm="pipenv run python manage.py"
now 'pipenv run python manage.py startapp foobanizer'
becomes 'dm startapp foobanizer'
or 'pr django-admin startapp foobanizer'
As for the shells. I really like this feature because it's a lot cleaner. With activate and deactivate you are essentially mutating the current shell which can be dangerous. Also because it loads your ENVs on every run, it's easier to switch out ENVs.
And especially in bootcamps since things are so fast paced and often times emotional, the reviews are not objective. Many are too positive or too negative.
This is without going into dev too. You just need to enable android on your chromebook.
I've always liked Python for web dev because it is a good general purpose language, it's elegant, and has good web frameworks. Some other languages are really good at the web but not much useful outside of that. So with Python if you are building something with data analytics and the web it's a perfect choice. Python pairs well with a lot of areas. It doesn't pair with everything well, such as, Javascript I think pairs better with robotics. And there are other good general purpose languages too (Javascript, Java, etc).
But yes some people have plenty of self motivation and can do it themselves. The career networking is really all they need then.
But yes look at placement rates at any bootcamp before joining. If people are getting jobs then it's well worth it.
Some devs will never want any management duties and you shouldn't give it to them. However, they then probably are going to be a master or have really deep knowledge in something valuable to the company.
I would say a good 10-20% do have some kind of contact in the industry though and get a job that way.
By focusing too much on abstraction, you’ll get a really lopsided team. And remember it only took one really abstract thinking Willy Wonka and a bunch of oompa loompas to make really great candy. Too many Willy Wonkas and nothing would ever get done.
Lastly, most people only get abstractions right with experience. So there is still some value in experience.
This can happen with configuration in code too but at least it gets checked in and there is usually a better review process.
So I usually go for a hybrid approach. Have most configurations committed and tracked in code in different files, one for development, production, etc. This makes it really clear which configurations are more important. Any configurations that can't be committed to code, use ENVs or a secure key store if you can handle the extra process complexity.
This approach can still have holes but at least the surface area is reduced.
However, that particular quiz is one of our "launch" quizzes, so I went ahead and added that answer. Both chemistry and organic chemistry should work now.
As for the stack the frontend is VueJS and Vue Material. The backend is Python, Django, Postgres, Elastic Search and some Redis spread in for caching.
Its running on pretty limited resources right now, but I'll scale it up when I get some traction. So if it's a little slow sorry not sorry, but it seems to be holding up pretty good for using mostly free resources.
"Only the Sith deal in absolutes", Obi-Wan Kenobi
Sure if you're using Node.js pull out SSR first since its easier. But for Python right now, it's not the easiest thing.
Server side rendering only makes the first view faster. After that, everything is rendered on the client and faster that way. And if you use caching with progressive web apps or just file caching in general, the first view will be fast after. So you're only optimizing for the first of the first. You can then provide the initial data in the page request so that saves a round trip on the first request while still rendering on the frontend.
I say all this to just point out that there are many ways to speed up your frontend without doing SSR and they are much easier to implement with Python. So I'd rather exhaust all these techniques before implementing SSR. If I get to that point though, I suspect Python might be the slowest part of your stack. And lastly if you are doing SSR for SEO purposes then just use a prebuilt prerender service.
With all that said if there was an easier way to SSR with Python/Django, I'd definitely use it. But Jinja on the frontend doesn't sound like that answer.
Yes its harder to manage windows but once its setup, I don't find that i'm fooling with windows all day, just a minute whenever I restart my computer which isn't that often.