Click here to Skip to main content
15,886,199 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
So. I have a project/idea that needs a website, which will be a responsive design, and will have some forms for the users to fill out. I will need to capture that data and have it accessible.

I am a novice programmer, but have been consuming a lot of free online resources - I've gotten myself to a basic level in HTML / CSS, Javascript, and a crappier level in python. I've built basic stuff with all of them, nothing crazy. I'm pretty decent at logic and learning new STUFF so if I need something else as part of the answer, please don't hesitate to say so, I'm willing!

So the question(s):

1 Will I be able to build a responsive website as a novice? Should I use a framework? Any pointers?

2 The website will have forms / textfields to fill in and I need to capture that data - how do I do this? Do I use a back-end language like Python - or should I learn something like PHP? Which one is recommended? Where do I store the data? (do domain providers have storage usually, or do I put it on my computer, or have to buy server space? - It won't be a ton of data)

3 For a basic website with a few pages, and maybe 4 pages of forms to fill out, how long does this sound like it will take for a newbie?

I know I could pay someone, but I'm using this as a learning experience for coding on top of the project itself, so I don't mind if it takes a bit longer.

Thanks for any help / advice!
Posted

  1. I have no idea. The term "novice" is very fuzzy. A good novice will certainly do it. Quite certainly. But I rarely meet such good novices. I have no idea what are you. Your questions look suspicious to me. (Such as "Should I use framework"? What you really should is to use your brain :-); no one will tell you for sure what you should and what not; you need to learn how to make your decisions yourself.) But I cannot say for sure that you are going to fail. Everyone can learn a lot. After all, this is not rocket surgery, not even close :-).
  2. This is simple: all your forms and fields is just a client side, HTML, with JavaScript or not. The event on client side sends an HTTP request to server side, and the server side. You only really need a form is you are going to use "submit" input type; then all form fields will be used by the browser to form HTTP request data, using name attributes as a keys and controls' value properties as values in the key-value pairs. For further information, please see: https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Forms[^].

    Alternatively, you can send HTTP request directly in your JavaScript code using Ajax: http://en.wikipedia.org/wiki/Ajax_(programming)[^].

    If you use Ajax, you don't have to use forms, because you can take all the HTML element one page, no matter where they are. And if you use forms and "submit", you don't have to use JavaScript, but you might need it for many other purposes: visual and layout effects, preliminary client-side validation and so on.

    It's strange that you mix up forms question (client-side) with "Python vs PHP" in one item (didn't I tell you that your questions are suspicious to me? :-)). Let's talk about it. You can use those languages only on server side, isn't it obvious? Now, roughly speaking, Python is a pretty smart thing, very regular, nice to work with, very expressive, and so on. PHP… well, trash is trash; I don't even consider it as a "real" programming language, this is rather some ersatz-language. But… maybe this is one of the reasons why PHP is much more popular. If you want to find the cheapest yet acceptable Web hosting, PHP will be there in all cases, but what they have for Python can be a problem. Or the language will be available, but the Python-based framework would be not the best. Or something like that. Python is not so popular, but potentially is very good for Web development.

    Now, it's important to note that ASP.NET getting more and more popularity with time. In its power and suitability for development, in reliability, maintainability, available debugging and logging facilities it probably much better than all other technologies taken together. The minimal hosting prices tend to be a bit higher, but this situation keeps improving with time.
  3. Did I tell you that your questions look suspicious to me? Difference in skills in different people can be orders of magnitude. One good rich page can be worth of hundreds of other page. What time estimates can be done based on your assumption. Look, main skills in software development include strong logic and also good common sense. Think about it. How your question can be so naive?


What else? I don't want to discourage you. There is nothing too complicated in all of that, but you need to learn a lot. You need to understand general programming very well, as well as Web operations. And then, you should not rely on some stranger advice in your choice. Do you expect that someone will tell you: "learn this and that, but not that and this". Well, yes, some can reasonably advise you to stop wasting your time on such trash, but more typically, you have to learn a number of competing technologies, languages and technique and only then make your own choice. After all, I never saw people who know only one language and technology (for Web development, this is never one, but, let's say, some fixed set of them) and know it really. For good understanding, you always need to learn alternatives. We human usually can understand many things if we take an opportunity to take a side view on them.

Good luck.
—SA
 
Share this answer
 
Comments
Black Mamba Elapidae 22-Aug-15 8:05am    
Impressive answer!! Well said :)
Sergey Alexandrovich Kryukov 22-Aug-15 21:49pm    
Thank you. :-)
—SA
My Solution is a DIY

First I lead you to ToDoList 7 - An effective and flexible way to keep on top of your tasks[^], it is a software to manage lists of things to do in a hierarchical fashion. Or you can use the program of your choice.

Create a first top level task My Project Features, then create sub tasks to refine the description of what feature you want and how you think it would be done.
My Project Features
Site organisation
    Static pages
        HTML
    Dynamic pages
        HTML
        PHP or JavaScript (Language to generate pages)
        DataBases
    Form pages
        HTML
        Form handling
    ...

And so on

Then create another top level Task Skills needed for the project and list all skills at second level.
Use a field to rate your mastering of each skill.

Then do the the same to rate what the frameworks are good at and how it will help you.

And so on.
Then by checking the tasklist, you will see what is missing and what skill you need to master.
 
Share this answer
 
Comments
Sergey Alexandrovich Kryukov 22-Aug-15 0:27am    
What does it mean, "PHP or JavaScript"?
—SA
Patrice T 22-Aug-15 0:38am    
He choose which language he want to use.
PHP on server side.
JavaScript on client side.
My "solution" is about doing an inventory of its needs.
Sergey Alexandrovich Kryukov 22-Aug-15 1:26am    
So, there is no a choice between them, right? But this wording strongly suggests that you advise to choose between them; it's absolutely confusing.
—SA
Patrice T 22-Aug-15 3:59am    
See it more as an example than a real choice.
All depend on what he want do and how.

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900