|
Thread Rules 1. This is not a "do my homework for me" thread. If you have specific questions, ask, but don't post an assignment or homework problem and expect an exact solution. 2. No recruiting for your cockamamie projects (you won't replace facebook with 3 dudes you found on the internet and $20) 3. If you can't articulate why a language is bad, don't start slinging shit about it. Just remember that nothing is worse than making CSS IE6 compatible. 4. Use [code] tags to format code blocks. |
On April 10 2020 14:33 WarSame wrote:I suppose I should add more criteria to my request: This would need to be something entirely within the browser, with no installation. If you've seen w3schools Im thinking along those lines. It would also need ideally 0 background knowledge. Example from LPTHW: Show nested quote +If you do not know how to use PowerShell on Windows, Terminal on macOS or bash on Linux then you need to go learn that first. You should do the exercises in Appendix A first before continuing with these exercises. would just immediately filter everyone out. These are people who have not programmed before. I am hoping they can get the basics down and understand how computers work a little better. I am not trying to make them into professionals. I think I was also wrong in using the word course. Maybe more appropriate would have been tutorial or introduction. The Stanford course has homework, you need to apply to get in, etc. This would not work for this group of people. Then why python? Have them learn computational thinking in one of the many gamified apps for that. Lightbot (mobile app) is good, but I'm personally partial to http://codecombat.com, as that actually uses real languages (albeit heavily simplified), and I personally find the environment more fun.
|
Pluralsight is free now. They have a lot of courses usuall with good quality (including python and various frameworks).
Also when we are talking about some programming courses for beginners there is c# course in which he explains even basics of how windows/folders/shell works, its for total newbies not even in programming but in windows usage: https://channel9.msdn.com/Series/CSharp-Fundamentals-for-Absolute-Beginners?l=dHjsrIRIC_1806218949
Also on the topic of learning: i have set "learning a new programming language" as goal for this year in my work. I am now considering what to choose.
|
On April 10 2020 16:44 Silvanel wrote:Pluralsight is free now. They have a lot of courses usuall with good quality (including python and various frameworks). Also when we are talking about some programming courses for beginners there is c# course in which he explains even basics of how windows/folders/shell works, its for total newbies not even in programming but in windows usage: https://channel9.msdn.com/Series/CSharp-Fundamentals-for-Absolute-Beginners?l=dHjsrIRIC_1806218949Also on the topic of learning: i have set "leanring a new programming language" as a goal for this year in my work. I am now considering what to choose. Right now, I'd pick Rust or Julia, but just because they both look like fun, not for any business/career reasons.
Apparently COBOL just keeps coming back every time there's a crisis (now it's healt systems that were built in COBOL) and COBOL programmers are some of the best paid because of that. So if you want to study a deprecated language with absolutely none of the useful modern tricks, that's a good one.
|
|
Wow, no post for almost a month!
I've got a task to write an HTTP client and server, but with the following requirement:
go over HTTP application level restrictive proxy. Application level restrictive proxy will let you pass through it
Link: https://en.wikipedia.org/wiki/Application_firewall
Do I have to do anything specific to meet that requirement or is this done implicitly via HTTP anyway? I'm a bit confused.
|
On May 04 2020 17:57 SC-Shield wrote:Wow, no post for almost a month! I've got a task to write an HTTP client and server, but with the following requirement: Show nested quote + go over HTTP application level restrictive proxy. Application level restrictive proxy will let you pass through it
Link: https://en.wikipedia.org/wiki/Application_firewallDo I have to do anything specific to meet that requirement or is this done implicitly via HTTP anyway? I'm a bit confused. You probably have to put specific things in the HTTP header. I'm not an expert here, and it'll no doubt depend on the specifics of the firewall, but where "regular" firewalls block/allow based on origin/destination and ports, application firewalls block/allow based on content. For starters, it has to be the right application layer message.But presumably you want to pass a firewall that goes beyond simply checking if it uses http and not some other application layer protocol. The next step is the header, and most of the really important stuff should be in the header (e.g. it could block anything with content-type application/json. Why? I dunno. It's just an example). So you'll want to know what rules are in place and what you need for your app, and make sure they work together. If the firewall has rules that actually sniff around in the content, then I dunno. In general I expect devops to make firewalls that work for the application rather than the other way around.
|
On May 04 2020 19:35 Acrofales wrote:Show nested quote +On May 04 2020 17:57 SC-Shield wrote:Wow, no post for almost a month! I've got a task to write an HTTP client and server, but with the following requirement: go over HTTP application level restrictive proxy. Application level restrictive proxy will let you pass through it
Link: https://en.wikipedia.org/wiki/Application_firewallDo I have to do anything specific to meet that requirement or is this done implicitly via HTTP anyway? I'm a bit confused. You probably have to put specific things in the HTTP header. I'm not an expert here, and it'll no doubt depend on the specifics of the firewall, but where "regular" firewalls block/allow based on origin/destination and ports, application firewalls block/allow based on content. For starters, it has to be the right application layer message.But presumably you want to pass a firewall that goes beyond simply checking if it uses http and not some other application layer protocol. The next step is the header, and most of the really important stuff should be in the header (e.g. it could block anything with content-type application/json. Why? I dunno. It's just an example). So you'll want to know what rules are in place and what you need for your app, and make sure they work together. If the firewall has rules that actually sniff around in the content, then I dunno. In general I expect devops to make firewalls that work for the application rather than the other way around.
Ok, that seems to make sense. Do you know if there is a link which I can read for further information?
|
|
I see/hear about the "learn a new language" a lot, mostly from US-based developers. I like the idea, but I wonder when you guys consider the language "learned"? What I see a lot is people trying out a new tech, building a pet shop or a Hello World page, and then they're "done".
My question is: what was a nice minimal project that you built using a new (to you) language, that gave you the feeling you got a proper understanding of the languages pro's and con's?
|
Hyrule18762 Posts
I try to do something useful, and not just for languages but also for frameworks. When I wanted to pick up Symfony I made a small website to assist in seeding games of Castle Risk so setup didn't take 45 minutes. It worked, and was enough to show in interviews to the point that I got a job at a place running Symfony where I picked up the actual ins-and-outs of the framework.
|
On May 06 2020 04:05 _fool wrote: I see/hear about the "learn a new language" a lot, mostly from US-based developers. I like the idea, but I wonder when you guys consider the language "learned"? What I see a lot is people trying out a new tech, building a pet shop or a Hello World page, and then they're "done".
My question is: what was a nice minimal project that you built using a new (to you) language, that gave you the feeling you got a proper understanding of the languages pro's and con's?
I find this strange. It's nice to be a polyglot but in my opinion it's super hard to learn and be proficient with multiple languages. Even after spending years with a single language you learn new things and you have to constantly be up to date with changes to it, some languages can change very drastically and even if the language doesn't change much the frameworks and general ecosystem for them can undergo severe evolution. That's why I've stopped trying to really learn some other languages, I'll do some pet projects in them to get a hold on the basics and will re-visit that sometime to not forget everything but that's it. Also, once you know one language pretty well picking up new languages is much easier (I managed to land a senior dev for python job after about a week or two of self-learning even though I've never done anything in Python).
Some skills are inter-changeable between the languages so it's better to work on those, then you have a solid foundation and the rest is just syntactic sugar. Some languages put emphasis on different things too (Python being really optimized towards working with data structures while Erlang is great at multi-threading but shit at basic stuff like parsing strings). In the end, with solid foundations you can just pick up any language, learn the new syntax and dive deeper when necessary (to understand how things are implemented low-level there). I quite often check Ruby methods and their C implementation this way.
My advice: work on the core. In the end it doesn't really matter what language you pick, all that matters is if you know what you're doing. If you can propose a good solution to a problem in pseudo-code you can then implement it in any language and it becomes just a minor detail, but to do that you need to know how to think with programming.
Over the years I've noticed that a big difference between myself and junior devs that join the company is that it's way easier for me to google things and such because I simply know what I'm looking for (I already know what I have to do, I'm just looking for specific language implementation) and not doing broad, semi-random searches in hopes I stumble upon a solution.
Unfortunately this is not something that's easily achievable yourself. Only after spending years doing similar projects over and over, maintaining them, revisiting them and changing them do you really begin to easily recognize all those common patterns and such. Sure, there are books on enterprise patterns etc. but you can memorize them and still not see the patterns in the actual code (and there are other patterns than just coding ones). Another thing with experience and doing the same stuff over and over is that you can see the pitfalls in advance. You know that you need to do extra bit of coding to prevent code locks, running out of memory, problems with garbage collection in certain situations and you know that before the first line of code is written which saves you a lot of time down the line (when you have to fix code that's been in production for a while and only then the problems start to show up).
|
On May 07 2020 03:27 Manit0u wrote: Over the years I've noticed that a big difference between myself and junior devs that join the company is that it's way easier for me to google things and such because I simply know what I'm looking for (I already know what I have to do, I'm just looking for specific language implementation) and not doing broad, semi-random searches in hopes I stumble upon a solution.
This is a super important point. I feel like most of the problems my students have is that they don't have a clue how to google. I mean, I also run into really obscure shit that takes some serious google fu to attack using different search terms, but basic shit like "copypaste the error into google and see what other people did" should not be something that blocks you for days.
|
On May 06 2020 04:05 _fool wrote: I see/hear about the "learn a new language" a lot, mostly from US-based developers. I like the idea, but I wonder when you guys consider the language "learned"? What I see a lot is people trying out a new tech, building a pet shop or a Hello World page, and then they're "done".
My question is: what was a nice minimal project that you built using a new (to you) language, that gave you the feeling you got a proper understanding of the languages pro's and con's? A basic project would be a to do list. Better than learning a lot of languages is learning how to quickly learn one. Kinda sounds stupid but there are so many new things everyday that you need to be able to adapt quickly.
|
On May 07 2020 03:43 Acrofales wrote:Show nested quote +On May 07 2020 03:27 Manit0u wrote: Over the years I've noticed that a big difference between myself and junior devs that join the company is that it's way easier for me to google things and such because I simply know what I'm looking for (I already know what I have to do, I'm just looking for specific language implementation) and not doing broad, semi-random searches in hopes I stumble upon a solution.
This is a super important point. I feel like most of the problems my students have is that they don't have a clue how to google. I mean, I also run into really obscure shit that takes some serious google fu to attack using different search terms, but basic shit like "copypaste the error into google and see what other people did" should not be something that blocks you for days.
Yeah. Another important thing is recognizing when approved answer on stackoverflow is not actually the one you want and it's better to take one of the answers that might be below it (or even look for answers elsewhere as sometimes all of the solutions are just plain bad, they work but they're bad), quite often there are answers to questions years later, using better practices etc. but the author of the question doesn't update it so people just pick the first chosen one and it sticks. I remember that someone asked about testing out of space errors on Linux (simulating drive running out of space) and the chosen answer was creating new small partition, filling it up, mounting, dismounting etc. where the correct way to do it is to simply try to write to /dev/full which will give you the exact error you're looking for without any extra steps necessary.
Here's this question: https://stackoverflow.com/questions/16044204/testing-out-of-disk-space-in-linux/
My answer is still not the one chosen and no one actually suggested it for 4 years before me. Everyone was trying to do the complex stuff.
Edit: @Arcofales: One of the best ways to actually learn about programming and code is debugging. You learn nothing when everything you do works. You might want to introduce your students to Ruby koans. It's a really fun and good way to learn programming and debugging: http://rubykoans.com/
It's one big app, split into multiple small files. When you try to launch it it throws an error at you, starting with simple stuff so you have to get in there, fix the error, launch it again and get at another error. The course ends when you fix them all, which requires refactoring the entire app
Truly a wonderful invention. I wish there were things like that for other languages.
Example:
[ ruby_koans ] $ ruby path_to_enlightenment.rb (in /Users/person/dev/ruby_koans) cd koans
Thinking AboutAsserts test_assert_truth has damaged your karma.
You have not yet reached enlightenment ... <false> is not true.
Please meditate on the following code: ./about_asserts.rb:10:in `test_assert_truth' path_to_enlightenment.rb:27
mountains are merely mountains
|
On another note, I'll have some fun in one side project now. Will be working with C code that was last touched in 1998.
|
I want to make a small, purely text based (or mostly text based) web game. Very simplistic, mostly just if-thens and maybe some loops.
What would be a good language to do this with? If it's not python, then preferably something easy to learn. Or if it is python, what else do I need? Thanks!
|
For me the answer would always be Unity. It's real charm is that it works for the most trivial and extremely sophisticated things in an efficient manner.
And for what you want, all you need is some C#, and the Unity part you can mostly just wysiwyg.
|
On May 27 2020 03:49 travis wrote: I want to make a small, purely text based (or mostly text based) web game. Very simplistic, mostly just if-thens and maybe some loops.
What would be a good language to do this with? If it's not python, then preferably something easy to learn. Or if it is python, what else do I need? Thanks!
If you want to make a text game you want to make a MUD. You can write a simple MUD in Ruby in 15 lines of code (supports multiplayer, internet connections etc.) but if you really want to do a good MUD you want some mudlib driver. There's plenty of stuff you can choose from, ranging from DIKU style MUDs (where you get your normal classes, all the numbers are displayed for the players etc.) to LP style MUDs (players don't see practically any numbers, more immersive RPG experience).
If you don't want multiplayer and just want some simple roguelike etc. there are guides for that too and you can just do it in JavaScript. Do you want something like that? https://alexnisnevich.github.io/untrusted/
|
That's actually more complicated than I need. The game won't have any spatial aspects, so no movement. Just conversation, so just text output and maybe some input.
|
On May 27 2020 10:47 travis wrote: That's actually more complicated than I need. The game won't have any spatial aspects, so no movement. Just conversation, so just text output and maybe some input.
Maybe start with writing a chatbot?
For conversation trees etc. I think Lisp is the way to go. At least that's how it is used primarily - primitive AI.
|
|
|
|