I'm going to weigh in on this one. I would still look at a programmer even if he didn't have a degree, but he better be good. In a way, you are somewhat like me. I spent a few years in the Army before I went to college. I was an adult student in a room full of 18 year-olds, and it was odd, but it gave me certain advantages. I after staying up all night running ambush patrols, staying up all night to finish a FIFO parking lot programming problem was easy. I don't know where you are in the country, but it certainly sounds like you are somewhere in the middle of nowhere. My suggestions would be this: #1. Leave wherever you are and go to North Dakota. Get a job as a roustabout on a natural gas drilling crew. Work for two years. Save your money and go back to college. If I was your age and had no family, no connections, and little education, I would be in North Dakota working on a drilling crew. The unemployment rate in that part of the country is around 3%. #2. Join the Army. Specifically look for MOS 25B which is basically a Network Admin. You'll learn a trade related to your field and get out with money and a shot at a college education. #3. Consider moving to the Philadelphia area and look for a job in The King of Prussia area. It seems like companies are always hiring junior programmers in the Philadelphia area. California is an option, but you won't be able to find housing. Don't fret about being too old. It took me 8 years to get my bachelors and 5 to get my masters, I finally hit my stride at 35. Now I manage a team of programmers. In all honesty, the best choice you may have is the Army. I don't think I would be where I am today without the discipline I learned as an Infantryman. Best of Luck. Quick edit. I never answered how I got my first job. Well, a buddy from the Army knew someone who was hiring a webmaster. I knew web programming and Perl and they hired me on my buddy's recommendation even though I didn't have a degree - basically they knew an Army guy would show up and work which was more than they could say for any other young programmer. Ryan
Ryan McBeth
Posts
-
How do you get your first job? -
Interview questions - best way to learn the answersThis is probably one of the best threads I've read in a while. I'm glad to know that I'm not the only one out there. I'm a software architect, but I'm also an Infantryman in the Army National Guard. For those of you in foreign countries, this basically means that I am a volunteer military reservist. I've been called up for military duty five times during my programming career. My last deployment was to Iraq. My memory has not been the same since I returned from a one year deployment to Iraq. My programming ability is still there, but I have a hard time some remembering syntax and definitions. I've compensated for this by writing a private blog that functions as a knowledge base. When I do something at work that I know I will have to remember, I write what I did in the blog and save it. Now, this process, or syntax or procedure is in the blog so that I can search for it and find it if I can't remember how I did something. I can't even begin to describe the frustration I encountered when I returned from Iraq and I started interviewing for work. I could not remember the answer basic syntactical questions. I found that drawing my answers on a notepad or a white board before I spoke helped me remember things in interviews sometimes, but many interviewers just found this odd. Usually, other software architects would just look smug as I squirmed in a chair trying to remember how to write a join command in SQL. I knew when to use a join command, but for the life of me, I could not write one from memory. The funny thing is that I could remember high level things just fine. If you asked me a logical programming question, I could describe how I could do something. I could describe how I did things in the past and why. I could tell you the difference between an Interface and an Abstract class and when you would want to use one or the other. I flew through the technical phone screens just fine, but when I was face to face with someone and had to describe how I would access a SQL database, I just couldn't write it without using IntelliSense or Google. My brain just didn't have the words anymore. I'm getting better with remembering syntax. A lot of this comes from me forcing myself to memorize things that I used to be able to remember with ease just a few years ago. The Code Project has helped. I check the Q&A forums once a day to see if I can answer any questions. So no, brother. You are not the only one.
-
problem in clearing the sessionsOkay, Maybe I'm not understanding the whole scope of the problem. If you set a session on the test page and check for that session in the page_load and force a redirect if the test has been submitted, any subsequent return to that page should force the user back to the "thankyou.aspx" page. This is especially frustrating because I work for a company that writes online personality tests. So here's what I do in a nutshell with very, very simplified business logic: notification.aspx -> answerSheet.aspx -> thankyou.aspx What I really do is keep it all on the same page and use AJAX and custom controls, but that doesn't help you with your problem. So here is the rundown (forgive me if there are syntax mistakes here, I'm doing this quick before a meeting): notification.aspx - This page explains the test, sets up some user info and sets the following in page_load.
protected void Page\_Load(object sender, System.EventArgs e) { Session\[COMPLETE\] = false; //The rest of the page loading code down here }
answerSheet.aspx - This page has the radio buttons for answers. It's here that I would have the following code inside the Page_Load() method in the answersheet.aspx codebehind file:
protected void Page\_Load(object sender, System.EventArgs e) { if (Session\[COMPLETE\] == null) { //Then we are in a state that we shouldn't be in, push back to the notification page. Response.Redirect("notification.aspx"); } if (Session\[COMPLETE\] == true) { //Then the user has already taken the test, push forward to "thank\_you" Response.Redirect("answerSheet.aspx"); } ///The rest of the page code down here }
thankyou.aspx - This page would have the following code:
protected void Page\_Load(object sender, System.EventArgs e) { Session\[COMPLETE\] == true; //The rest of the page loading code down here }
The following code will allow the user to go back to the answer sheet, but it won't matter because on page load, they will be redirected back to the thank you page. I will not give up on you, brother. If this doesn't help, post the code in the page_load methods and we can go from there. Ryan McBeth
-
problem in clearing the sessionsOk, brother I'm still on the case. I can think of one more option if sessions are out of the question. Create a third page called process.aspx . process.aspx -> thankyou.aspx If the user hits the back button, they go immediately to process.aspx and get redirected back to thankyou.aspx . Now, this won't help if the user holds down the "back" key and chooses test.aspx, but it may work in 90% of your cases, and if you are having trouble with setting sessions, that may be good enough. If that won't work, post your page_load method for test.aspx and thankyou.aspx and I'll take a look at it. Ryan
-
problem in clearing the sessionsIt may be tough to do unless you use session states because you have to record the state of the user. If you put the
Response.redirect("thanks.aspx")
in the page_load method along with the if Statement, it should work by kicking the user out. But there is always another way. Let me think about it. Ryan McBeth -
problem in clearing the sessionsThat's even easier to fix. From what I understand you basically have two pages: test.aspx and thankyou.aspx . Test.aspx as all of your questions and thank has all of your processing code. Test.aspx redirects to thankyou.aspx . If this is the case, here is what I would do: On any page before you go to test.aspx (I'm sure you have a page like (testinstructions.aspx), create a session:
Session[TEST_FINISHED] = false;
Then check the test page for the session:bool bTestComplete = (bool)Session[TEST_FINISHED];
//If this is true, the user probably hit the back button, get him back to the thank you page.
if (bTestComplete == true)
{
Response.Redirect(thankyou.aspx);
}Finally, set a session on thankyou.aspx like this:
Session[TEST_FINISHED] = true;
So when the user lands on the test page, the TEST_FINISHED session is set to true. This will insure that the user is never able to go back to the test page. Is that what you are looking for? Ryan McBeth -
problem in clearing the sessionsI would approach it differently. I would create multiple ascx files if you want different "pages" and step through these .ascx files by postback. This makes the system far more extensible because if you want to add new questions, or add questions dynamically, all you have to do create another .ascx file and reference it in the .aspx page. Or, you could reate one .ascx file and load the questions dynamically from a database or XML file, and just use postback to keep track of each question. Keep track of the current question with a session state, but then the "back" and "forward" buttons become irrelevant because you are displaying whatever .ascx file you've selected in postback. Ryan
-
Using Javascript and server side code to handle button click eventI agree with Brji... But there may be another way. I try to stay away from client side JavaScript. It's too hard to debug and test. But you could always have the "Next" button postback and make a decision to continue (Response.Redirect(whatever.aspx) or to not continue based on the entered information. I do it quite frequently, but I come from a WinForms background where I'm used to having fine control over the actions of the user. I think anytime you rely on JavaScript, you will get burned in the long run with compatibility issues anyway. Ryan