I have a good (maybe excellent) idea for the web - but only medium ASP.NET skills and beginner ASP.NET AJAX skills.
Is it possible to make a great application with only mediocre programming skills?
Why not? What is stopping you? Coding is always practice.
Don't overestimate your own abilities, however, don't underestimate your ability to learn. Attempting new projects and ideas is an excellent way to broaden your understanding and abilities as a programmer. Go for it, don't be disappointed by the results, but understand how much you learned in the process.
Not if it is security relevant. If it is some classic website or some Web 2.0 'expose yourself' stuff, go ahead. You will get practice on the road, as my fellow answerers told you.
But imagine, you're handling credit card data and make some beginner's mistake, so that the data can be taken from your site. Your visitors/customers will get in serious trouble, and so will you if anyone sues you (which then would be their absolute right to do).
My suggestion: All non-security relevant coding can be done right away, even if you're no professional with 10 years of experience. For sensible data, however, you must inform yourself and teach yourself (or get taught) the necessary skills before releasing your app to the world.
Code it, sure! Mediocre skills don't matter as much as willingness to learn.
Selling or promoting the app might be more difficult, however.
These are all great replies but I just wanted to add:
If you find mediocre also means a bit slow, try to use as many existing libraries and functions as possible to speed up development. Sometimes sacrifice features for things you know how to do. Use Google a lot and avoid reinventing the wheel every few minutes!
Ask someone to check your code security, and if you think you need it, scalability. The web is a wild place and people will input things where you really won't expect them to ;)
Go for it!
Start small and develop it in a modular way. Even if you're just doing really simple things in the beginning, you're making progress.
So go for it.
Absolutely. Consider that probably all of us only learned to really hone our programming skills once we got involved in a project (academic, professional, etc). Keep faith in your idea (remember, Jeff Bezos got laughed at initially), keep looking for new resources for learning programming, and you'll have something rolling in no time.
Build it with what you know and refine it as you learn more.
Of course you can! Having more experience would definitely help you along the way, but anyone can do anything if they try (with some help form Google of course!).
For example, I would guarantee that things like WordPess are not coded the best, but they meet a need, and they work. As long as your app works well, that's all that matters to most consumers.
Good luck if you do decide to try it!
I agree with others. Development it and put it out there; it's an opportunity to learn!
Depending on the idea, you might even consider doing it open source (there are many variations of licenses). If you do it open source, you could then get more experienced development feedback and turn it into learning exercise as you re-factor the code.
Of course, understand the license you are going to use and make sure it fits with the business model you want to use...
The largest roadblock to learning to develop is not having a good project to work on. Completely unstructured learning usually doesn't work. If you have a good project that you are excited about, you are 90%(90% being the arbitrary statistic that indicates "significant progress") there.
Just remember when you develop that you want to use F1 early and often whenever you hit a modest speedbump. It is annoying to develop a nice save string handling function, not realizing that String.IsNullOrEmpty() already exists. :-)
If you have an idea that you feel is worth the time and effort to build, then put the time and effort into building it. Regardless of your current skillset, developing a site will give you the practice that every developer needs. You'll become a better programmer from the experience, and will have valuable experience under your belt.
If you get stuck, you always have the excellent community at Stack Overflow to help with any questions you have, and you can always talk to another developer and pair up to tackle the project if it gets to become too large to handle.
I've been trying this myself for about a year. I've been three months away from launch the entire time! So check back in October and I'll have answer for you then.
No. Get a job. You'll make more friends and have more security.
Develop it as you envision it. Get it in front of people. Build momentum behind it, and get others to help you once you can deliver your vision to people. Of course you can built great applications, but you'll probably need help sooner or later, and it's easier to generate momentum if you have something to look at and play with.
I believe the most concise and precise answer is: YES
It may take you more time in the beginning but eventually not only you will be able to implement your idea, but you will develop your skills in the process. ( You don't develop skills by watching tv )
Since you can make a lousy program with great coding skills, I'll say the converse is true. The real question is how much effort will you excert in learning/working around all the problems you'll face.
I had a final project due in college (FORTRAN on mini-frame, via my dial up connection from home) and I stayed up all night and recompiled it 83 times. That's when I knew.
Of course you can. Just make sure you're willing to put in the time and effort it can take to develop the application and take it further, and don't forget keeping it updated throughout it's life!
jQuery is fun too ;-) and very easy to usewith any web-based langauge.
I found the best way to better-yourself/learn coding-wise is to try and make something that is a step up from your current knowledge. So if you have a brilliant idea and are determined to accomplish it, then go for it, your be doing yourself a favour. :)
Break it into small parts and then think seriously about what you can and can't do.
Best way to learn is by doing.
I can point you to a half dozen websites right off the top of my head that are good ideas but obviously developed by someone who has limited or no idea what they were doing. If nothing else, you create work for people like me who are contracted to fix other people's mistakes.
Some of the most successful applications started out not very well polished. The first HTTP server was not well written. Yahoo started out as an index by a couple of graduate students. eBay and Craigslist do not have very polished interfaces.
What is important is that the applications fulfilled a need by users - the quality of their implementation was secondary. As they got more venture capital, the quality of their applications improved.
There are also a lot of very polished sites that did not fulfill a real need and have fallen by the wayside.
Design the entire system first, break it down into modules that are small enough for you to code, and then code it!
The best way to learn is to learn by doing.
Is this likely to be the next Twitter or Myface?
Code away... get something up and running. Prove the concept. Use smoke & mirrors if you have to - if the concept is good, you can always get outside help later if necessary (I am cheap ;)
Dont show it to anyone unless thay have signed an NDA.
This is how I learned to program. Started with an idea, implemented it, rewrote it, rewrote it, repeated until it was actually a strong product that I am fairly proud of. In the process I also gained valuable skills, changed careers, and substantially increased my income based on the skills learned along the way.
It is definitely worth trying to do it yourself. But try to ask your programmer friends for help. If you can't find someone willing to help, that may be you are pitching it wrong. Or maybe the idea is not that great after all (don't take it personal, it happens).
Don't overestimate the value of the idea either. Poor implementation can spoil even the most brilliant idea.
In the end, however, doing it yourself is a win-win situation. You simply can't lose: you either get a great product and business or you get an invaluable experience of creating a project yourself, which will help you succeed the next time.
You can code a prototype yourself to pitch it to the investors, but to make it into a profitable business you have to hire more people, each one specializing in its own field, like security pros, customer service guys/gals, developers, designers, etc.