this post was submitted on 21 Jul 2024
19 points (100.0% liked)

Learn Programming

1615 readers
1 users here now

Posting Etiquette

  1. Ask the main part of your question in the title. This should be concise but informative.

  2. Provide everything up front. Don't make people fish for more details in the comments. Provide background information and examples.

  3. Be present for follow up questions. Don't ask for help and run away. Stick around to answer questions and provide more details.

  4. Ask about the problem you're trying to solve. Don't focus too much on debugging your exact solution, as you may be going down the wrong path. Include as much information as you can about what you ultimately are trying to achieve. See more on this here: https://xyproblem.info/

Icon base by Delapouite under CC BY 3.0 with modifications to add a gradient

founded 1 year ago
MODERATORS
 

Hello, I would like to store these http headers in classes:

Host: developer.mozilla.org
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:50.0) Gecko/20100101 Firefox/50.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Referer: https://developer.mozilla.org/testpage.html
Connection: keep-alive
Upgrade-Insecure-Requests: 1
If-Modified-Since: Mon, 18 Jul 2016 02:36:04 GMT
If-None-Match: "c561c68d0ba92bbeb8b0fff2a9199f722e3a621a"
Cache-Control: max-age=0

As you can see, many have unique data (numbers, strings, list of strings). I would like to:

  • store a header name
  • store list of possible options for that header (or store if it's a number)
  • read an input header and store and return the found option / list of options / number
  • make adding new types of headers as easy as possible

Is making hard coded classes for every type of header viable? How would this be done in the cleanest way possible?

you are viewing a single comment's thread
view the rest of the comments
[–] drem@lemmy.world 2 points 3 months ago (1 children)

I would like to make a http server to see how the web works. I would like to get a job too.

[–] best_username_ever@sh.itjust.works 0 points 3 months ago* (last edited 3 months ago) (1 children)

Do it in Python. It’s a PITA in C++ if you don’t know that language. Read A Tour of C++ instead.

Python for the web, C++ for everything else. C++ is still popular, especially the modern version and you’ll get a good salary. But you should learn HTTP with other tools like Python.

With both Python and C++ skills, you’ll get jobs everywhere. Python for tools and CI, C++ for applications.

[–] drem@lemmy.world 1 points 3 months ago (1 children)

Thank you for your advice, I've experimented with python, but I couldn' really read and understand how more complex examples work. I tried to implement backpropagation shown in a python example and couldn't, because it wasn't clear what type each variable was. I like C++ mutch more and I think I'm not a beginner at this point. Would you mind answering how important do you think are these coding projects for getting a job?

[–] best_username_ever@sh.itjust.works 2 points 3 months ago (1 children)

Every personal project is good as long as you try to make it professional. It doesn't need to be perfect but you can show that you made an effort to clean your stuff. I'm biased because I've been doing C++ for a long time, but every language is worth it. Also what I'm saying may be specific to my location and kind of job, but I tend to think it's kind of universal. To get a job, you need to show that you have a broad view of the software ecosystem.

For example for C++, you can do:

  • C++ code, maybe built with CMake or SLN because those are universal tools
  • linter and formatting (clang format, cppcheck, SonarLint, etc.)
  • good commits and branching strategy
  • some comments in your code
  • some documentation
  • unit-tests
  • maybe some scripts in Python for the CI
  • use a package manager like Conan or VCPKG because any company will pick random libraries all over the internet, you can't do everything from scratch

I think it applies to every language, just change C++ to any other language but the other bullet points don't change. And if you have some code to review, post it here and we'll read it like a real "merge request," it can be interesting.

[–] drem@lemmy.world 1 points 3 months ago

Thank you for this useful advice, I will make sure my project follows your suggestions!