The Open Thread is a place for open discussion among my readers. Post anything you feel like sharing! From now on, the Open Thread will no longer be monthly. Instead, there will be a new Open Thread whenever it is adequate. The stage is yours. Go ahead!
The latest Open Thread is made ‘sticky’ to improve access.
Please consider throwing a few coins into the tip jar, and buy my books! They are great. Your support is greatly appreciated.
43 thoughts on “Open Thread #138”
Question to the program.ers, devs etc
How do you get over the gap between learning the basics and actual real world programming?
I’ve gone over a bunch of bootcamps and courses on learning js. Done every coding challenge.
I’ve read the gap between what you learn (in tutorials, courses, challenges) and what you do in the real world is huge. But the only solutions offered seem to be go get a job.
But I have no intention of getting a job as a programmer. Is there no other actions way to learn real world programming?
The courses are getting ridiculously easy by this point. And I know it’s not real programming.
I know there are coding challenge websites.
That’s definitely challenging stuff. But with those I can’t see the link to the real world. They’re kind of coming up with algorithms in a vacuum. Very theoretical.
Whereas courses are very practical. Like you can see the practical use of what you’re learning. It’s super basic stuff, but practical.
Guess what I’m asking if there’s something equivalent to a course beyond the super basic level.
Those sites are normally only relevant for getting a job. Plenty of companies want you to jump through hoops, so they ask you theoretical questions that have little to do with day-to-day work in this industry.
If you are willing to share what your goal is, I may be able to point you to some resources. Beyond the basic level, the question is largely what kind of work you want to do: front-end, back-end, algorithms/machine learning, mobile, infrastructure, databases etc. Also, there can be huge differences between domains and even within domains.
Real-world programming can be pretty messy. You could get a job but you may also find an open-source project to work on. Larger ones sometimes have a list of open issues that categorizes tasks by difficulty.
I think a better question to ask is what your goal is. If you want to make money as a developer, try getting an entry level job, learn as much as you can, and jump ship after about a year for more money.
I guess it’s hard to explain as my goals and needs are very atypical. It seems I need to know a bit of everything. I think it might be hard to explain, but I’ll try.
Basically I started learning programming in order to solve real world business problems and challenges.
Clients paid me money to configure their business systems for sales and marketing processes.
Their demands became ever more complex. Like if x happens in this crm here, have it trigger action y in this other tool here and send a conversion event to Facebook, but only if abc…
As the scenarios became more complex I found there were no longer pre-made solutions and plugins, so I found I had to learn JSON and APIs and low-code tools to achieve what clients asked for.
As conditions became dependent on previous data I had to learn about storing and retrieving data, etc.
Eventually I realized I have to learn programming itself as low-code solutions would no longer cut it.
I realize the previous bunch of text isn’t a goal or anything clear. So I did some thinking about example applications that are a good proxy for the kinds of skills I need to develop.
I think I would need to understand how you:
1) build a crm (keeping track of both sales and marketing events, think lots of many to many relationships)
2) create a project management app
3) staff, employee, payroll, accounting management app
4) attendance, subscription, membership, invoice tracking app
– WordPress plugin that controls things on the WordPress installation/page off of changes in the above
– dashboards, analytics tools that draw data off of the above
I realize each of the 4 examples, on the highend is usually built by a team of hundreds of developers.
I don’t actually need to build this stuff myself from scratch to that level. I just need the skills of someone who can do it, if that even makes sense?
I think you should look into software architecture to learn about how bigger programs are structured. Basically, you can understand bigger products like a CRM as a collection of many small programs. Note that this is only an abstraction. Now that I think more about it, you will probably find it easier to tackle this problem for the perspective of “Product”. In many companies, those are the people who come up with lists of features. Then the talk to engineers who may or may not develop the architecture.
In terms of my actual goals:
I already do this for both my own business and clients. I just basically patch together a solution based on low-code tools and integrating existing software. I keep running into walls where I’m limited by how something was built, and I can’t change it since someone else built it. So I’m like I wish I made this from scratch.
My long-term goal is to build primitive apps that do this kind of stuff (from scratch). And then hire programmers to make them fully fledged. I might even sell the software to other businesses in my industry.
Let me give you a fake example to make things more clear. Imagine i was in the restaurant business and wanted to make primitive apps dealing with restaurant business processes. Everything from an app optimizing waiting times to keeping track of shifts and tips and food ingredients to be ordered and booking reservations etc etc. that would be a good scenario relating to example applications 2, 3 and 4.
As for example 1, I do that a lot. Sales and marketing heavy business where these things need to be tracked. But the real complexity comes in tying them to 2,3 and 4.
Instead of developing a basis prototype for yourself and letting hired programmers continue, you’ll probably be more efficient if you come up with the features and architecture, which they can then turn into working code.
Thank you. This sentence gave me an aha. The “war fog” is clearing up a bit. I think I see the idea.
So you can look at like this:
The front-page of the CRM is like an app that shows data (latest data from the different CRM modules). Whereas the contacts tab is an app that shows the latest contacts and paginates and sorts them, and has an “add new contact” button. When you click on that button you open the “new contact” app. And so on and son.
Funny thing is I already do that. I somehow unwittingly became somewhat of a product manager at a SaaS. I was even offered the position officially. I just feel bad about deciding which features should be built how if I don’t know anything about programming itself. So that’s my whole thing.
Makes perfect sense. It’s just that I don’t know if I’ll ever reach the level where I hire others. Having primitive apps that I build myself might suffice*.
*This is especially true since I’m already an expert at APIs and making popular tools work with each other as they were one app (building marketing and sales stacks). It might even suffice to have an app that just acts as a central dashboard between other, existing and popular apps.
So between that and the fact that I want to know how to at least build a primitive app before managing others, I just feel driven to at least do a couple of primitive apps before I drop the idea of learning programming.
How do I learn architecture?
Most product managers I’ve ever met have a really poor understanding of software development. You’d be well ahead of the competition even with just a basic introductory course on programming. With your knowledge on working with APIs, you are so much better than the rest of them that it isn’t even funny anymore.
Regarding your question on how to learn architecture, I just did a quick search online, and this paper from 1994 was the top result: http://sunnyday.mit.edu/16.355/intro_softarch.pdf
(This is not criticism in any way because it is very difficult to assess the quality of a source if you know little about the material.)
It looks pretty good to me, explaining basic concepts. Today, people would use different terminology here and there, but that does not really matter. Also, they apply software architecture to desktop computer programs, not web-based applications. Still, this is not really that important. You will know infinitely more about software architecture after reading this paper and thinking about the material than even the better corporate product managers.
@Alek: architecture is overrated a lot.
Most real software that is used in the real world barely has any architecture:
even the Linux source code is mostly a monolithic mess
In theory you want to have lot of independent modules and so on, but it rarely works out in practice.
The most important principle is to not have any redundant information in your system (source code being information). Every piece of information should only be in one place.
If you follow this principle, you will arrive at a good architecture most of the time.
This is a nice article about it:
You need to architect even a monolith. If you don’t, the architecture will emerge as people write code and add features, but this can make it less maintainable. At some point, you will then have to redesign the application. What often happens, though, is that the system becomes completely unmaintainable and you just write a new one from scratch.
“While much attention has been focused on high-level software architectural patterns, what is, in effect, the de-facto standard software architecture is seldom discussed. This paper examines this most frequently deployed of software architectures: the BIG BALL OF MUD. A BIG BALL OF MUD is a casually, even haphazardly, structured system. Its organization, if one can call it that, is dictated more by expediency than design. Yet, its enduring popularity cannot merely be indicative of a general disregard for architecture.”
Having worked for 4 different companies so far, I can attest this is 100% true.
Becoming a good programmer is mostly about working on projects, experiencing frustration and resolving it using google-fu and reflection.
As Aaron said, real world programming is messy. In other words it is not so codified that it can be taught in a course.
You don’t need to get a job to work on real projects. Start working on your hobby projects. Maybe an app for playing around with stock simulations or automatizing boring paperwork. If you don’t know where to begin then take a template from a tutorial or one of those beginner courses and modify it by progressively adding new functionality.
That’s the thing though. Where does one even find such tutorials?
Courses basically offer examples where you “build something”. But the thing you build is almost ridiculously simple. It’s not even a mini app, it’s like a micro app.
Like if a real world startup SaaS app is at like level 500 of complexity, courses show you how to build something of level 2 complexity. Know what I mean?
I feel like the gap is too large.
This is because large applications are built by dozens if not hundreds of engineers, and each of them is only working on a very small part of it. Imagine you wanted to build a house or, better, a palace. You could look at the completed building and think that there is no way that someone who has spent a few weeks doing construction work during the summer can do this. Of course, in reality you need many specialists to carry out the ideas of the client (features), which the architect turned into a blue print for the construction workers to follow, and they also have someone organizing their work. Software development is quite similar to this scenario.
You may find “level-2 complexity” in some smaller open-source projects.
Like if a real world startup SaaS app is at like level 500 of complexity, courses show you how to build something of level 2 complexity. Know what I mean?
That is where the google-fu and reflection/analysis come in.
Lets say you want to build your own CMS. You might not find many courses teaching you how to do that. What you need to do instead is break down your CMS to level 2 complexity components and then find guides showing how to make them.
For example… find a tutorial which shows how to build a todo web app. Then expand with a tutorial showing how to make a SPA with multiple tabs. Then incorporate a tutorial showing how to connect web page user input with database. Sure, you might end up with a lame barebones CMS but that is how you learn programming.
Basically you don’t need to get good at coding challenges or learning intricacies of programming languages, you need to get good at breaking level 500 complexity stuff down to complexity 2 components.
On the topic of decadence of modern world, we have had a conversation on the decline of architecture and music. For architecture, one can at least defends modern architects by stating that utility is prioritized over aesthetics. For music, nothing can be defended.
What do you think of poetry. I haven’t read much modern poets. I have read Arthur Rimbaud and Paul Verlaine. I notice that modern poetry also declines as well. Overtly abstract poems are seen as “deep”, and the poets who wrote it are seen as “intelligent”.
I really like 17th-18th century poets. They are masters of both forms and contents. It is so satisfying of reading Alexander Pope’s Essay on Man, because it is written in heroic couplets, wonderful rhyme schemes and highly creative rhythm.
I am also reading Dryden’s translation of Virgil’s works, and well I know “it hath a far more pleasing sound” than modern poems. His own poems are also majestic and elevated.
I find that our common language also declines in beauty and elegance. Imagine those masters who breathed the fresh air filled with poetic music and speeches. It ought to be a fecund field from which to give birth to poetical ideas.
I find Chinese poetry also declines, along with that beautiful language.
I think the mark of a maestro in art resides in 2 things: creativity and mastery of technicality. On that note, modern poets don’t score very high in my eyes.
I think you need to have some transcendental ideals for art.
Modernity only has science and nihilism, and that’s why modern art sucks.
Why build a cathedral if death is the end? You won’t see it finished.
Have you heard about the new mini-series “Anne Boleyn”?
The main role is played by a black woman. This wouldn’t be strange considering the fact that she plays the role of a historical(non-fiction) queen of England.
On a imdb the average score is 6.9 out of 10. So, the average viewer(mostly English or American) think this series to be decent.
However on a polish imdb’ equivalent platform the average score is 1.2 out of 10, which tells much more about the bullshit they created.
LMAO, peak clown world.
They are going to start rewriting history now. Historical figures will suddenly be black.
Every good thing came originally out of Africa.
Wait for it.
Beethoven has been proven to be black already, bigot!
On a more serious note, there are not renegade scientists who dispute the out-of-Africa hypothesis. Their arguments look pretty good, but we’ll probably have to wait for the end of ZOG to pursue this line of research.
LOL they just fixed the rating:
because you cannot give bad ratings to a series with a black main actor
What kind of weighting do you have to apply to arrive at a 6.9/10 when 94.3% of users rank the show a 1/10? Calling this kind of blatant manipulation pathetic would be far too kind.
It seems that they are not only rediscovering history, but also creating a new mathematics.
Looking at the screen you posted I really don’t know how they calculated the 6.9.
I’d guess that any ranking below 4/10 got weighted with 0.
Speaking of historical revisions, apparently a Mozambiquan man was granted the title of Samurai in Japan during the 1500s, all without even having to do the hard work of training diligently everyday from childhood:
Apparently there is a Netflix series either already out or underway. I don’t even see the point in subscribing to a streaming service these days. If there is something you really wish to watch there are other ways.
Within about ten years, scientists will discover that the samurai were actually elite black warriors which were only ever depicted as Japanese because those artists were not talented enough to draw the superior African physical form. Also, I’d like to remind you that Swedish scientists discovered that Vikings were black. They were also Muslims and wrote “Allah” everywhere: https://blog.aaronsleazy.com/index.php/2017/11/02/sweden-has-always-been-an-islamic-country/
“What kind of weighting do you have to apply to arrive at a 6.9/10 when 94.3% of users rank the show a 1/10?”
you have to step out of your white mathematics frame. in black mathematics, this all makes sense.
According to IMDB:
“When unusual voting activity is detected, an alternate weighting calculation may be applied in order to preserve the reliability of our system.”
No definition of unusual voting activity, though.
It probably means that whenever the difference between the critics and users average is too large, the algorithm will start culling user votes as long as necessary.
No doubt. I’m sure you’re aware of ‘Swedish’ minister of culture (whatever the fuck that is, obviously a position of authority that grants the wielder the ability to destroy a nation’s culture) Alice Bah Kuhnke’s decision a few years back to Viking artifacts destroyed:
“Swedish Minister of Culture, Alice Bah Kuhnke, has ordered the destruction of all newly discovered Viking and Iron Age artifacts.”
“Kuhnke has also reportedly said herself that such artifacts take up “too many resources to process, identify and store them.”
This reminds me of the the recent Summer of Love in the USA where many historical statues were toppled. In Scandinavia, I could imagine a scenario where young children have no cultural reminders of their past and are force fed revisionist bullshit about Muzzie Vikings. Except instead of raping and pillaging, they went around fighting injustices and helping the poor and disadvantaged.
I came across this video on Covid and Dr McCullough. It briefly discusses the financial stakes , clinical trials, etc. You’ll find it interesting. I’m not sure how it would compare to the research you have done.
Just recently looked into German poetry in the 17th century. It was rather sad to read that many poets and playwrights wrote with sorrow due to the effect of the 30 years war. This poet, Andreas Gryphius, seems to capture my attention.
It’s regrettable that my German is far from sufficient to understand him. German poetry is not discussed very often in college in the US.
The whole is like your home. If you wish to advance your understanding, you have too look far and wide.
Looks vs social freedom.
Thanks to my sister I have a huge really extroverted social circle.
One of the interesting thing is that when I enterred in this circle I had a better look than the majority of Guy but the large majority of them had much more confidance/social freedom than me. The fact that had success with these girls from the beginning clearly proove that look is way more important than “be an alpha” in order to be attractive. On the other side It is true that it took me few month to get the girls that were into me because I had to much “anti game” at the beginning. I think it is a really relevant concept.
It is also possible that a Guy really underestimate his physical attractiveness. It was my case during 27 years because in had a really introverted life probalbly avoiding lots of social situations because of an important lack of confidance.
An other think is that some Guy look probably too young until they are mid 20. I am 28 but people give me frequently 22.
China students come back to China in greater numbers. They see that they have more opportunities in their homeland than in the US:
Translation: At last, one hundred years of ignonimity has already passed into people’s memories, and just become an old tale of the past. Now, the future will surely be filled with glory and hope.
I feel sad for the US, but the cycle of rise and fall of empires is inescapable. The wheel of fortune has turned in favor of China, an old country that at last rejuvenate from the fountain of youth, and gathers its strength to exert progress.
The thing about China that is lost in the West is it’s appreciation for history. Westerners are obsessed with the present and sometimes the future. The Chinese know that it is all one. They were the top nation in the 1800s and they knew it was only a matter of time until they returned to that status.
It is indeed their national trait. China possesses the largest collections of historical records in the world. No historians would be able to read them all.
“They were the top nation in the 1800s”
China has always led the world for a long time.
Joe Rogan explains why Hollywood is so fucked up. Doesn’t mention the J word though