CSS is one of my favorite languages. And the only way I can consider CSS to be difficult is if you have no experience with HTML. If you try to do HTML by hand, then doing CSS by hand on top of HTML by hand is really easy and wonderful. And this is truly where you gain the fundamental framework for "getting CSS".
My experience was completely the opposite. Learning HTML was effortless, and I had a great deal of fun writing pages by hand, easily creating whatever I could imagine through a straightforward hierarchy of nested tags. When CSS came along, it added a slippery, inconsistent layer of confusion where spooky action at a distance was the order of the day; nothing ever worked completely right, no matter how much time I spent grinding on it. I never could get comfortable with CSS and eventually gave up web development rather than continue fighting with it.
Yeah CSS is a complete nightmare. Nothing works and you never know why. The only thing you can do is to randomly change attruibutes randomly until something happens. I remember working on a simple website and i had to do a gradient banner. The gradient was relatively simple but the true challenge was making it stretch edge to edge. No matter what i did there was always a little bit of padding or the layout was completely off. I don't even remember how i solved it.
I have yet to find a frontender (and I have worked with 100s over the past 30 years) that can do any significant css without trying it out in a browser; if there is something off or needs to change on the frontend, very often the most experienced senior frontender can guess (and often a little bit right) what it is but to actually fix it they have to try a few times.
To me (someone who likes logic) that is a sign it’s all not very good. I can write a bunch of code on paper in several programming languages and even non web frontend frameworks and it will work after I type it in first time ; when it comes to web frontend, it has to be tried out to know it works as it likely will have issues (unless it has no css layouting of course or absolutely trivial prototype stuff).
It seems like you're not comparing apples to apples. Investigating someone else's code to alter it is always going to be harder than writing new code, even on paper in several languages.
I do think that CSS has enough footguns to say that arbitrary CSS is not very good; well-written CSS is a very small subset of CSS in general. It joins many other languages in that regard-- C, C++, Javascript, PHP, Bash, the list goes on and on. As in all of those languages and more, with some basic familiarity it's not hard to sling some fresh code together and have it do what you want. Making it scale maintainably is the hard part.
(For my 2 cents on the matter, the way to write Good CSS(tm) is using CSS modules to limit scope, using flexbox or grid for all layout, and being rigorous about creating stacking contexts when you need to modify z order. Application of these three rules has made my life as a senior frontend engineer generally quite easy.)
Handcoding/server-generation HTML running CSS via SCSS with no frameworks is a truly fulfilling experience. Especially if I get to mix in some SVG. I'm one of the few that outright hates JS, so I'm always glad when I get a chance to get back to my favorites.
I learned to take it personally but not react badly. This way I am not trying to counter a normal human experience, but instead changing something I have total control over, my response.
This is a fight worth having because the more you do it, the better you get at it and you feel less and less attacked you feel when criticism comes your way.
The first few times doing this are the hardest. But after doing this for some time, I rarely feel criticisms are personal anymore. This also affected how people talk to me, and they make it less personal. It's an odd combination of success from both sides.
A key point to all of this, was I needed to make my criticisms less personal.
A manager told me a key point in a private conversation once that help me change my attitude.
He said "I don't like talking about people, I like talking about processes".
I had just been critical of a "person" in the conversation, and I realized how much easier it was to talk about a "process" with my criticism after I took his hint to heart. And others took some time to follow my lead on this, and for me to be consistent about this change of process.
Here's a video of Siegfried Engelmann, who is mentioned in this article, demonstrating how he had taught inner city grade school age kids that were considered "unteachable" (I can't recall the exact label I was told) doing algebra... live. (about 20 min in) I think they are about 4th or 5th grade.
Hi Vanderson, I am surprised to hear mention of Engelmann here on HN :). I would love to connect and learn more about how you discovered DI. FWIW, I am a former principal engineer at a FAANG company turned educational researcher / edtech founder. I am working to revive Engelmann's Theory of Instruction and democratize access to the explicit, systematic teaching of the skills of reading (e.g., phonological awareness, decoding, and sight recognition).
I have a friend who I met in college who got his PhD working under Zig, which is how people who knew Engelmann called him. And this friend gave me a copy of his book "How to teach your child to read in 100 lessons" and I used it to teach my own kids.
I think you have an up hill battle with getting traction with DI, but if you succeed that would be a great benefit to many people. (my perception)
What is the protocol on this site for starting conversations "offline"?
Thanks so much for your response Vanderson! I wish I had known about How to Teach Your Child to Read in 100 Lessons when I was teaching my daughter. I definitely fumbled my way through it :).
> I think you have an up hill battle with getting traction with DI, but if you succeed that would be a great benefit to many people. (my perception)
I completely agree and it really isn't too surprising that DI never took off in schools. FWIW, I am looking to revive the underlying pedagogy (e.g., teaching sequences for non-comparatives, joining forms, etc.) rather than DI proper.
> What is the protocol on this site for starting conversations "offline"?
Interesting question that I never stopped to consider :). I have met dozens of people through HN, and it seems congruent with the hacker ethic ("throughout writings about hackers and their work processes, a common value of community and collaboration is present"), but ::shrugs::.
I could certainly put you in touch with my friend. What I meant by "offline" is that I really don't want to put my email address into a public forum to be spammed. Any suggestions how to share contact info?
Siegfried Engelmann from the University of Oregon developed a science based method for teaching reading. With simple ideas like making sure the letters were distinguishable, teaching the most common letters first, teaching the sounds the letters make before teaching the names of the letters, immediate feedback on reading mistakes, etc...
I've seen many "science based methods" in my lifetime, and they are contradictory. I am not an expert in the subject of education, which means I cannot evaluate what is really science based. I could do this of course - but my day job is as a programmer and when I'm done with that I just want to make sawdust or music, not do more research.
Sure, but all methods teach kids to read. Science of education should include effectiveness. Things such as how well they comprehend, how fast they read, what disabilities they have... note that the above list logically should be in conflict and society should debate the best method bases on the different measures to find good compromises.
I recommend just starting from scratch. As a programmer at heart I find programming like playing with Legos. While I needed to understand how all the underlying parts worked, I didn't need instructions on how to build a specific larger thing.
I found MDN to indispensible in learning to make web apps. Everything from learning the basics of string/array/date/etc... objects, to modern ES6 modules.
As far as actually building apps? After 20+ years of programming, I found my own light weight JS code turned into a framework over time for building apps the way I wanted to. Mostly vanilla JS.
But it didn't stay vanilla JS because too many things are hard on your own. Since everything you build you have to maintain, I found it easier to use jQuery years ago with all it's extra tools. Today? I am still removing jQuery from my code, as vanilla JS does everything jQuery did for me. (I stopped using their widgets as soon as browsers supported features by default, like a proper date picker, etc...)
So, my advice, start from scratch. learn all the pieces one at a time as you need them. This will keep you from getting overwhelmed.
Are their good resources for these from scratch online? Sure, but maybe a book is a good idea here, as it forces a more basic linear learning process if you start at the beginning. Not sure I'd take this route, but it may work for some people.
To your original question - no, I don't know of single source. But no, you do not need Node. You can create an html file and load it directly in a browser, you don't need a server to get started. But this is just step one...
SQL database was a large amount of tables alike and if you try to add a feature that it doesn't implement yet (such as drop shipping capabilities) I couldn't figure it out because its not as simple as creating a new set of forms like in Django you basically have to understand the whole system and I think the task would take a year.
It would have been better to integrate an existing system instead.
Hi, Vanderson. I'm doing the same thing here where I work. I would be interested in sharing experiences. You can contact me via my profile if you'd like to chat more about it. I would say from my part it's been a good choice, but so much complexity to deal with.
I actually have not touched any of the code yet as we are using a 3rd party developer to help us. (I will likely work on templates and other things down the road)
My experience when evaluating Odoo was using Studio, which I have found can really mess up your Odoo instance.
No. We are using a 3rd party developer, too. But I'm interested in eventually becoming a developer/consultant for the product. I already do python programming at my current job, too.
At one time if you even _looked up_ the availability of a domain name they would immediately register it so if you tried to then register it at Namecheap or GoDaddy the name was taken already.
That should be illegal. (I have not bothered testing if their system still does this)
> At one time if you even _looked up_ the availability of a domain name they would immediately register it so if you tried to then register it at Namecheap or GoDaddy the name was taken already.
What would be their overhead for doing that? Seems like it's something that could be fun to subvert until they stop (e.g. do lookups of UUIDs in a loop).
You said you'd next time go with a freelancer as one of your solutions. I'd argue you can run into the exact same problems as you described in your main post, just on a smaller scale.
In this comment:
> There were still issues, but I was prepared this time. WebAgency kept suggesting new flourishes to the design. I declined them all and told them to focus on the design I’d approved. I’m glad I did because they’d probably still be working on the website today.
I think you need to do this with every project reguardless of the size of the team you are working with.
Design companies seem to want to make customers feel like they are unskilled / unable to make design decisions for themselves, but maybe this is all experts? And I can say I have had very stubborn customers in the past, and it was good for everyone involved to have a customer that knows what they want and expects it, even if the designer doesn't really like the results as much as their own ideas.
>You said you'd next time go with a freelancer as one of your solutions. I'd argue you can run into the exact same problems as you described in your main post, just on a smaller scale.
Yes, definitely. In my experience, the smaller scale makes it easy to manage, so you can nip problems in the bud more quickly.
>>There were still issues, but I was prepared this time. WebAgency kept suggesting new flourishes to the design. I declined them all and told them to focus on the design I’d approved. I’m glad I did because they’d probably still be working on the website today.
>I think you need to do this with every project reguardless of the size of the team you are working with.
Yeah, I think it's important to be vigilant to some degree, but some people are effective at suggesting useful improvements. TinyPilot's in-house devs, for example, will frequently suggest improvements to designs or architecture that will cost more up-front but will reduce costs long-term, and I love those kinds of suggestions.
If the agency had a history of suggesting improvements and correctly estimating the cost of implementing them, then I'd be more open to their suggestions. But their track record was consistently to expand scope and run late, so I wanted to constrain scope as much as possible.
To be clear, I agree with your assessment and I would not recommend an agency unless you are a huge company as well. It's a mis-match of interests and goals.
The work I did as a web programmer for an agency (freelance) was similarly imbalanced with many "leaders" telling me what to do, (ie, project lead heavy, 1 designer, 1 programmer) and it was a mess and I won't bother with it again.
I think the key is not to hire anyone to do website design.
Hire graphic designers to make logos, illustrations, and come up with a color palette. That's the kind of stuff that can't possibly take weeks and weeks.
The author doesn't need a website design, this site is totally fine with a generic SquareSpace/Wix template.
Get your logos and illustrations and drop them in, and set your colors and fonts accordingly.
Custom website design is complicated enough that it can get into its own little version of development hell, and most small businesses don't need anything that a simple generic page can't handle.
CSS is one of my favorite languages. And the only way I can consider CSS to be difficult is if you have no experience with HTML. If you try to do HTML by hand, then doing CSS by hand on top of HTML by hand is really easy and wonderful. And this is truly where you gain the fundamental framework for "getting CSS".