Entire article, and much more, is available at www.mknopf.com/topics/code-camp-orlando.html By Michael Knopf.

Download Report

Transcript Entire article, and much more, is available at www.mknopf.com/topics/code-camp-orlando.html By Michael Knopf.

Entire article, and much more, is available at
www.mknopf.com/topics/code-camp-orlando.html
By Michael Knopf


Current job trend in the USA: Its not a pretty sight
Getting Prepared for the Job Market
– Saving for a Rainy Day
– Evaluating your skill set:
• Identifying your strengths and weaknesses
• Comparing yourself to your peers: how do I measure up?
– Preparing your resume:
• Guess what, its read by a computer first
• Keywords, keywords, keywords
– Finding a Job:
• Searching for, finding, and being found
– The interview:
•
•
•
•

What to expect
How to prepare
Being yourself
(Not) Knowing it all
Working with Recruiters
–
–
–
Finding a job is a full time job
Leveraging recruiters to work for you while you work on yourself
Do’s and Don’t
www.mknopf.com/topics/code-camp-orlando.html

Being “All You Can Be”
– Staying informed on what’s happening in Tech.
– Practicing the fundamentals:
• What are they anyway?
• Design Patterns:
– What they are and why you need to know them
– You’re already using them, but didn’t even know it
• There are no “experts”, only commitments
– Teaching yourself the skills that are in demand:
• WCF & Software as a Service (SOA), Silverlight & WPF, C# & VB.NET, Web Forms
(Classic ASP.NET), ASP.NET MVC, JavaScript & jQuery, AJAX, MSSQL & Oracle,
ORM (LINQ, NHibernate, ADO.NET Entity Framework, SubSonic), Visual Studio &
Blend, Photoshop &Adobe Illustrator
– Contributing to the community – it makes you a better developer:
• Do you Blog? You should be!
• Do you read Blogs? You should be!!!
• Using and Giving Back: OSS, Alpha’s & Beta’s, putting pen to paper (well, actually
finger to keyboard), teaching others what you’ve learned (Mentoring)

Real Questions asked in Real Interview: your going to be surprised
www.mknopf.com/topics/code-camp-orlando.html
U.S. Dept. of Labor & Statistics Report
(www.bls.gov)
– 14,871,000 out of work in February 2010
– 14,837,000 out of work in January 2010
– 15,268,000 out of work in December 2009
– 12,714,000 out of work in February 2009
www.mknopf.com/topics/code-camp-orlando.html
www.mknopf.com/topics/code-camp-orlando.html
Saving for a Rainy Day: You will need money to pay your bills when you’re out of
work. Plan for it now!!! Put 2 months of your net salary in a savings account and DO NOT
TOUCH IT until you are unemployed.
Identifying your strengths and weaknesses:
How would you rate your skills (1-10) where 10 is the highest and 0 is the lowest.
–
–
–
–
–
–
–
–
–
–
–
–
ASP.NET Web Forms:
ASP.NET MVC:
Windows Forms:
SQL:
OOP:
C#:
VB.NET:
JavaScript/jQuery:
Design Patterns:
WCF and Service Oriented Architecture:
Silverlight & WPF
What else? There’s LOTS more
Look at your ratings, I strongly recommend researching and learning everything you can about
any item that is under a 5.
Test Your Skills: Create simple scenarios that demonstrate the fundamentals in each of these
areas, then code projects that meet these scenarios
www.mknopf.com/topics/code-camp-orlando.html
Comparing yourself to your peers: how do I measure up?
The best way to measure yourself is to get involved with the tech. community, then you will
have people to compare yourself to:

Talking to others in your field about things you know, want to know, and what they are
doing provides insight into the skills and experience others possess.

Read blogs, articles, and books by respected individuals (be “reachable” by the
community)
–
–
–
–

Join user groups (on-line only groups and groups in your local community)
Research what people are discussing, think deeply about these topics and form your
own opinions
discuss your opinions with others
• With your friends, family, girlfriend even if they aren’t listening you will still be
gaining a better understanding of these ideas
• at user group meetings and tech events (i.e. Code Camp)
• definitely on your own blog)
“Must read” blogs: Martin Fowler, Scott Guthrie, Scott Hanselman, Phil Haack, Michael
Knopf (shameless plug). To download a OPML file with subscriptions to these blogs and
more go to http://www.mknopf.com/Domains/www.mknopf.com/CMSFiles/Docs/blogsubscriptions.xml save it to your desktop, then “Import” it into Google Reader
Perfect the fundamentals, then practice them some more, rinse and repeat
www.mknopf.com/topics/code-camp-orlando.html

Guess what, its read by a computer first
– When you submit your resume to employers, recruiters,
and job sites they are scanned by software and stored in
a database (wow, they are using software to make their
job easier, isn’t that surprising)

Keywords, keywords, keywords
– The keywords found on your resume are used to match
you with job postings.
– Keywords are critical to your success, just like on Google,
If you don’t have the words people (employers and
recruiters) are looking for then your resume will never
show up in the search results and you will never get an
interview.
– For an example of my resume go to
http://www.mknopf.com/about-michael-knopf.html
www.mknopf.com/topics/code-camp-orlando.html




DO NOT FEEL EMBARRESSED OR THINK YOU’RE A LOOSER BECAUSE YOU
ARE OUT OF WORK, EVERYONE HAS TO FIND A JOB SOMETIME IN THEIR LIFE
You have a job: finding and preparing for interviews, and it requires overtime
With so many people out of work you have a lot of competition.
Do not sit around feeling sorry for yourself. Yes it feels like your girlfriend just
dumped you and that hurts. You can and will find work, most likely a MUCH better
job (and maybe even a better girlfriend) than you had, but you must WORK for it!!!
Searching for a Job:
– The internet is an invaluable resource: sites such as Dice.com, Monster.com, the online Classified Ads for you local paper www.orlandosentinel.com/classified/jobs/
Best of all: you can do it from home
– Tell everyone you know, and those you don’t, that your looking for work. It doesn’t
matter if you haven’t talked to them in 20 years!!! Your direct network is a great way
to get in front of employers, and you will have one-up on the competition because
your skills have been validated by someone they know (and hopefully trust).
– Use social networks such as Linked In, Facebook, and MySpace to let people know
you’re on the job hunt, if you’re not already using these then start immediately and
search for every person you have ever known or met in your entire life. Then ask
them if they know where you can find work.
– Do not be afraid to ask for help, this is a critical skill we call “team work” and
employers want team players
www.mknopf.com/topics/code-camp-orlando.html
Finding a job:

Finding a job is not the same as searching for one, there will be lots of jobs you come
across in your searches but there are things to keep in mind:
– Hurry up and wait: Employers may be advertising for a position but not ready to
make a decision on when to hire, it is not uncommon to hear “we feel you are a
strong candidate and will be making a decision in the next month or so”
– There is strength in numbers: the more jobs you apply for the better your chances
of getting an interview that leads to an offer.
When I graduated from college I applied to over 100 companies, I got 1 interview
which lead to 1 job offer. When they hired me I had to wait 2 months before I
started.
– There Is Work Out There: the Tech industry is at about 3.7% unemployment
compared to the national average of 8.1%
– The average salary offered for high-level (senior) developers is around 80K annually
Being found:

Job Sites to put your resume up on : Monster.com, CareerBuilder, Yahoo Hot Jobs,
Dice.com. Contact recruiters that specialize in the Tech industry such as TEKSystems,
Robert Half Technologies, and K-Force Staffing
www.mknopf.com/topics/code-camp-orlando.html

Lots of phone calls, be prepared to answer questions immediately because
the first time you hear from someone may be a phone interview
–
–
–
–

Questions about projects you have worked on: your resume may be stellar
but what you have done is the only thing that matters.
–
–

Put a phone number on your resume and on job sites/submissions that you have access to 24
hours a day.
Answer the phone with “Hello this is <your name here>” so people know they got the
person they wanted to talk to
Nearly every employer will give a phone interview first, if they like what they hear then they
will call you in for a face-to-face.
Make sure you can take the calls in a quiet atmosphere, kids screaming in the background or
lots of commotion will cost you the interview. It’s better to let them leave a voice mail and call
them back when you can talk somewhere quite
Be prepared to discuss things you have worked on
If you don’t have a lot of experience then you need to dream up “sample” scenarios and
program applications that solve these problems, you can definitely discuss these in interview,
just don’t mention that it was a side project you did just to learn)
Fermi Questions: “How would you move mount Fuji?” (read this blog post
and then look at http://www.techinterview.org/ )
www.mknopf.com/topics/code-camp-orlando.html
How to prepare


Study the “Real questions asked in Real interviews” section of this
document
Think about a project that you really enjoyed working on, preferably
one that involved a team and different types of technologies. Write a
short story about the project:
–
–
–
–
–
–
–
The business need and how you planned to fill it
what you liked the most
the technologies you used and why you chose them
problems you encountered and how you solved them
The lessons you learned along the way
What you would do differently next time
Example: a project that used WCF as the service layer that provided SOAP and
REST interfaces to be consumed by Silverlight applications with the data stored in
MS SQL and accessed using LINQ
www.mknopf.com/topics/code-camp-orlando.html

Being yourself
– It’s not Hollywood: don’t try to be who you “think” they want, be
who you are, we are geeks not actors.
– Attitude is Everything: employers are looking for individuals who not
only have the skills they need but also have a positive attitude, good
work ethic, and can get along with others (you’ve heard the term
“team player”, its for real)

(Not) Knowing it all
– You are not expected to know everything
– If you “b------t” your way through questions you will blow the
interview
– Be honest! If you don’t know then tell them “I’m not sure but I’ll find
out”. Right after the interview is over (like in the parking lot before
you drive away) do some research and email the interviewer the info
you found, this will go a long way in making you stand out from the
competition
www.mknopf.com/topics/code-camp-orlando.html


Finding a job is a full time job, fortunately you have an
entire workforce out there who want to help at no cost to
you
Leveraging recruiters to work for you while you work on
yourself.
– Build a network of recruiters who are working to put you in front
of employers that need your skills
– While they do the foot work you need to work on getting better at
what you do (building software) by doing the things outlined in
this presentation (identify strengths and weaknesses, network
with people, document projects you’ve worked on, etc…)
– Keep them informed on what your doing, who your interviewing
with, and give them feedback on how interviews went.
– BE HONEST (it you bombed it then tell them, if you hit a home
run they need to know)
www.mknopf.com/topics/code-camp-orlando.html


Communicate with them daily, return their phone calls immediately,
and if you haven’t heard from then find out why
Tell them who you’re interviewing with (interviews set up by other
recruiters, friends, family, yourself, etc…).
– They may have a relationship with the and can help your chances of getting
hired
– They are competing with other recruiters, if you tell them that others are
getting you interviews they will work harder to get you hired.
– They get paid when you get paid!
– If your submitted to the same job by more then one recruiter YOU COULD BE
ELIMINATED from the candidates list. It also makes the recruiters look bad
and your relationship with them will suffer because of it.

Be honest with them and yourself about:
– Your skill set: don’t tell them you know Silverlight at a very high level when
you really have only done a few tutorials. If you have heard of something then
tell them so, if you haven’t it’s OK (your not expected to know everything), if
they tell you about a job description that includes something you don’t know
about then research it!
– Your salary requirements: Don’t under-state or over-state what you need. Be
realistic or you may eliminate opportunities before you even know it.
www.mknopf.com/topics/code-camp-orlando.html








channel9.msnd.com
subscribe to and read blogs: go to
http://www.mknopf.com/CMSFiles/Docs/blog-subscriptions.xml
and import this blog list into your favorite reader (Google Reader is
awesome)
join your local .NET users group
go to the Code Camps in your area (drive across the state if you
have to). Tampa, Orlando, Jacksonville, and South Florida
Sign up to be a speaker at an event: pick a subject you like and put
“Finger to Keyboard”
attend the annual and semi-annual tech conferences in your area
and elsewhere (TechEd, Dev Connections, MIX, PDC)
read books on the latest stuff, they are not hard to find
most of all experiment with the latest things (especially OSS,
Alpha’s, and Beta’s) by programming applications using "real
world" scenarios.
www.mknopf.com/topics/code-camp-orlando.html
What are they anyway?

Single Responsibility Principle

Open/Closed Principle

Liskov Substitution Principle

Interface Segregation Principle

Dependency Inversion Principle
Object Oriented Programming (OOP):you have heard this term a million times, maybe even
studied it in college, but can you create a program for me right now that demonstrates the core
principles?
Design Patterns:


What they are and why you need to know them
–
–

They are ways of approaching common problems that have proven to work in the real world
They prevent you from making mistakes that have already been made in the past
You’re probably already using them, but didn’t even know it
–
–
–
Do you have a way or organizing your code that you use commonly (ie. Class structures and
folder/file organizations, using base classes and interfaces, etc…). Most likely there is already a
name for it (such as the Factory Pattern, the Strategy Pattern, the Observer Pattern).
Associating Design Pattern names with its implementation allows developers to
communicate ideas more effectively. Its just like doctors who know the name of a specific kind of
surgery, they can discuss this surgery “pattern” with other doctors and know that
miscommunication will be minimized.
Go out and buy a copy of “Design Patterns: Elements of Reusable Object-Oriented Software“
and read it cover to cover, twice
www.mknopf.com/topics/code-camp-orlando.html










Windows Communication Foundation (WCF)
Software as a Service / Service Oriented Architecture (SOA)
Silverlight & WPF
C# & VB.NET
Web Forms (ASP.NET, Classic ASP, HTML Forms)
ASP.NET MVC
JavaScript & jQuery
AJAX
MSSQL & Oracle
Object Relational Mapping (ORM)
–
–
–
–
–
–
LINQ
NHibernate
ADO.NET Entity Framework
SubSonic)
Visual Studio & Blend
Photoshop &Adobe Illustrator
www.mknopf.com/topics/code-camp-orlando.html
Do you Blog? You should be!


When you write about what you know it helps others learn
You cannot contribute to a conversation if you don’t speak up
Do you read Blogs? You should be!!!





“Must read” blogs: Martin Fowler, Scott Guthrie, Scott Hanselman, Phil
Haack, Dilbert Daily Comic Strip.
Post comment on topics that you find interesting, your opinion matters.
To download a OPML file with subscriptions to these blogs and many
more go to http://www.mknopf.com/CMSFiles/Docs/blogsubscriptions.xml save it to your desktop, then “Import” it into Google
Reader
Many Blog Readers will suggest blogs that you may be interested in, this
is a valuable resource for finding new and interesting avenues of
information
The more you read blogs the more blogs you will read:
– Posts often contain links to external sources of interest
– Posts often have comments from readers and visitors that provide
links to other on-topic resources
www.mknopf.com/topics/code-camp-orlando.html
Using and Giving Back:

Open Source Software (OSS):
– CodePlex (http://www.codeplex.com/ ) provides you with TONS of OSS projects.
Download and use them, if you like them or have improved them then request to be
added to the team and contribute to the project. This is a BIG plus when it comes to
your resume because you can prove you have worked with a distributed team on
(hopefully) widely used project(s). It also moves you one step closer to becoming a
Microsoft MVP (http://mvp.support.microsoft.com/ )
– When you put your code out there for others to use, evaluate, and analyze you’re
opening yourself up for criticism. This makes you WAY more cautious about how
you develop, the result is you become a better developer.

Alpha’s & Beta’s: download alpha and beta software, use it and then provide feedback
to the development team (such as allowing the automatic “submit bug” feature to
execute)

Putting pen to paper (well, actually finger to keyboard): write blog posts, write a White
Paper (which is a “how to” manual), write a book even if its just a PDF document you
post on blogs for people to read: download and read Karl Seguin’s free PDF book
Foundations of Programming

Teaching others what you’ve learned (Mentoring) and learning from them, become a
mentor, your apprentice will teach you more then you could even imagine
www.mknopf.com/topics/code-camp-orlando.html
You have 60 min. to create an ASP.NET web application that does the
following:




3 pages and 1 XML file:
– Default.aspx, Results.aspx, NotFound.aspx, reservations.xml
Default.aspx:
– Contains a textbox and a Search button
– the search button is disabled by default
– Using JavaScript enable the search button only after the user has entered no less than 6 characters
into the textbox, only numbers and letters are allow (no special characters like !@#, etc…).
– The Enter key must also be handled, in other words if the user hits enter before they have provided
the required number of characters the page simply reloads and the user is told that they must enter
the minimum number of chars.
– The search button posts the search contents to Results.aspx
Results.aspx
– Captures the search text sent to the page
– Write code to search the reservations.xml file for a record whose ID matches the search value
– If a match is the details of the reservation record are displayed
– If no match is found the user is redirected to the NotFound.aspx page
NotFound.aspx
– a message is displayed telling them that no records match their search
– The search criteria they entered is displayed on the page
www.mknopf.com/topics/code-camp-orlando.html
What is a Worker Process?
 When the IIS Worker Process or the ASP.NET Worker Process starts a Web
application, the Web application inherits the identity of the process if
impersonation is disabled. (Impersonation is the process of allowing a
thread to run under a different account from its process.) However, if
impersonation is enabled, each Web application runs under the user
account that is authenticated by IIS or the user account that is configured
in the Web.config file. Impersonation can be enabled in either of the
following two ways in Web.config:
 <identity impersonate="true"/>
This allows the Web application to run using the identity that was
authenticated by IIS.
<identity impersonate="true"
userName="SomeUserAccount"
password="SomePassword"/>
This allows the Web application to run using a specific identity.
www.mknopf.com/topics/code-camp-orlando.html
Where can Viewstate be stored?
 Anywhere, by default its stored in the
pageg, by the server, at the time the page
is returned to the client.
www.mknopf.com/topics/code-camp-orlando.html
What is the effect of changing the
web.config file in a running app?
 Resets the cache, app pool, and timing.
IIS freaks out
 destroys session and “first load” problem
because this changes the HASH for the
aspx Auth cookie so everyone needs
needs to get a new auth cookie.
www.mknopf.com/topics/code-camp-orlando.html
What is the difference between String
and StringBuilder?
 Strings are immutable and stringbuilder
by-passes this. When you concatenate a
string then 3 objects. String.Format uses
StringBuilder
www.mknopf.com/topics/code-camp-orlando.html
Are there pointers in .NET?
 No (although there are delegates)
pointers use variables that point to
memory locations.
www.mknopf.com/topics/code-camp-orlando.html
What is a Delegate?
 A delegate in C# is similar to a function
pointer in C or C++. Using a delegate allows
the programmer to encapsulate a reference
to a method inside a delegate object. The
delegate object can then be passed to code
which can call the referenced method,
without having to know at compile time
which method will be invoked. Unlike
function pointers in C or C++, delegates are
object-oriented, type-safe, and secure.
www.mknopf.com/topics/code-camp-orlando.html
What is the GAC?
 Where the .NET DLL’s live so that
applications have access to these.
“repository for DLL’s that respects
versioning”
www.mknopf.com/topics/code-camp-orlando.html
What is MSIL?
 Intermediate Language, the Compilers
convert the high level code to the IL
www.mknopf.com/topics/code-camp-orlando.html
What is SOAP?



SOAP (Simple Object Application Protocol) is a light weight protocol intended for
the exchanging of structured information in a decentralized, distributed
environment.
It uses XML technologies to define an extensible messaging framework providing a
message construct that can be exchanged over a variety of underlying protocols.
The framework has been designed to be independent of any particular
programming model and other implementation specific semantics. The
technological foundation that makes up Web services includes SOAP, the Web
Service Description Language (WSDL), Universal Description, Discovery, and
Integration (UDDI), and XML. Specifically, SOAP provides a heterogeneous
mechanism to allow the invocation and communication between Web services.
Some of the shortcomings of the SOAP 1.1 has been clarified, updated and
corrected in SOAP 1.2. SOAP 1.2 contains a number of issues such as those on
interoperability and ambiguities that resulted in differences of interpretation.
SOAP 1.1 is based on XML 1.0 and can only use HTTP POST headers to transmit
SOAP messages. As a result, it isn't really suitable for wide-scale applications.
www.mknopf.com/topics/code-camp-orlando.html
What’s the difference between the GET and POST request
methods?
 The GET method appends name/value pairs to the URL,
allowing you to retrieve a resource representation. The big
issue with this is that the length of a URL is limited (roughly
3000 char) resulting in data loss should you have to much
stuff in the form on your page.
 The alternative to the GET method is the POST method.
This method packages the name/value pairs inside the body
of the HTTP request, which makes for a cleaner URL and
imposes no size limitations on the forms output, basically its
a no-brainer on which one to use.
 Most applications overload POST to take care of everything
but resource retrieval.
www.mknopf.com/topics/code-camp-orlando.html
What is OOP? If you don’t know you need
to find out
 Inheritance
 Polymorphism
 Abstraction
 Encapsulation
www.mknopf.com/topics/code-camp-orlando.html
What is the coolest piece of code you have
written ?
 Has to be really cool
 Something you know inside and out
 Don’t be surprised if this leads to a lengthy
conversation because is opens the door for
analysis of what you think is cool, how you
approach problems, and your level of
expertise
www.mknopf.com/topics/code-camp-orlando.html
Can the constructor of a class be declared
as static and if so why?
 Yes a constructor can be static. When a
constructor is declared as static it is fired
before all other constructors and is very
useful in instantiating variables
www.mknopf.com/topics/code-camp-orlando.html
Describe Web Services
 Behind the scenes there are three major
components that make up a Web Service:
 The Web Service on the Server side
 The client application calling the Web
Service via a Web Reference
 A WSDL Web Service description that
describes the functionality of the Web
Service
www.mknopf.com/topics/code-camp-orlando.html
Define URI and URL? (are they the same
thing?)
 URI (Uniform Resource Identifier) is the
unique identifier that represents a service
available in a RESTful application such as
the World Wide Web.
 The Uniform Resource Locator (URL)
provides a way of uniquely specifying the
location of a resource on the Internet
 They are the same thing; URL has been
replaced by URI
www.mknopf.com/topics/code-camp-orlando.html
What is WCF? Can you give an example of when it’s
used?
 Windows Communication Foundation, WCF is
designed in accordance with Service oriented
architecture principles to support Distributed
computing where services are consumed by
consumers.
 Clients can consume multiple services and services
can be consumed by multiple clients.
 WCF could be used when architecting a system that
needs to be completely separated from its
presentation layer allowing a Windows Forms,
Silverlight, and Web Forms front end to interact with
the same business logic layers of the system.
www.mknopf.com/topics/code-camp-orlando.html
Explain an Abstract class
 An abstract class means that, no object
of this class can be instantiated, but can
make derivations of this.
 Abstract classes can have
implementation within its methods or
properties them where as an Interface
cannot have implementation within its
methods or properties.
www.mknopf.com/topics/code-camp-orlando.html
Explain a Sealed class
 The sealed modifier is used to prevent
derivation from a class. An error occurs if
a sealed class is specified as the base
class of another class. A sealed class
cannot also be an abstract class.
www.mknopf.com/topics/code-camp-orlando.html
Explain a Virtual Method
 Abstract methods are required to be
overridden, whereas virtual methods are
not.
 Virtual methods, in contrast to abstract
methods, are required to have an
implementation associated with them.
 Virtual methods, along with interfaces, are
the only means of implementing
polymorphism within C#.
www.mknopf.com/topics/code-camp-orlando.html
You have 1 million records and need to
sort, how would you do this?
 Bucket sort or Quick sort
 There are many other kinds of sorts, you
should become familiar with them
www.mknopf.com/topics/code-camp-orlando.html
Explain the B-Tree and what it’s used for?
 In computer science, a B-tree is a tree
data structure that keeps data sorted and
allows searches, insertions, and deletions
in logarithmic amortized time.
 It is most commonly used
in databases and filesystems.
www.mknopf.com/topics/code-camp-orlando.html
Can you give an example of when you
might use reflection?
 Reflection is Microsoft implementation of
Code Introspection, which is the ability to
have code that has Meta Data.
 For example: You cannot cast a string to
an object so you must convert it into an
object via Reflection.
www.mknopf.com/topics/code-camp-orlando.html
What attributes are you familiar with,
how have you used them?
 inherit from the class System.Attibute
 [Test], [WebMethod], [ Serializable]
(cross Service Oriented Architecture
gateway which renders an XML schema
defining the Meta Data so look at WCF)
www.mknopf.com/topics/code-camp-orlando.html
What is the name of the process that
runs aspx code in XP? aspnet_wp.exe
 What about 2003, Vista? w3wp.exe

www.mknopf.com/topics/code-camp-orlando.html
What is new in .NET 2.0?








Generics and generic collections
64-bit platform support
ADO.NET support for UDT (user defined types)
ACL (access control list) support which grants/revokes
permission to access a resource on a computer.
Tons of new data control objects introduced to ASP.NET
(GridView, new cache features, aspnet membership services,
object/sql datasource skips codebehind binding.
MasterPages, Themes, Web Application Project model (vs.
Website model)
Controls render output in XHTML 1.1 standards
Debugger Edit & Continue Support
Data Protection API: encrypt web.config, passwords, blocks
of memory
www.mknopf.com/topics/code-camp-orlando.html
In 3.5?










WCF Web Programming Model: enables developers to build Web-style services with
WCF. The Web Programming Model includes rich URI processing capability, support
for all HTTP verbs including GET, and a simple programming model for working with a
wide variety of message formats (including XML, JSON, and opaque binary streams)
.NET compact Framework support for WCF (Windows Communication Foundation)
AJAX-Enabled Website projects, AJAX Library
Linq
Forms authentication, roles management, and profiles can be consumed in a WCFcompatible application
ListView Databound control and the LinqDataSource object
Add-In and Extensibility support (discovery, activation, isolation, sandboxing, UI
composition, Versioning)
TimeZoneInfo
Suite B cryptographic algorithm support published by the National Security Agency
(NSA) including Advanced Encryption Standard (AES) with keys of 128 & 256 bit
encryption, Secure Hash Algorithm (SHA-256 & SHA-384) for hashing
Peer to Peer networking support (PNRP) Peer Name Resolution Protocol
www.mknopf.com/topics/code-camp-orlando.html
What's the difference between a DataTable and a
DataReader?
 DataTable: opens the connection for less time so
better for network performance, pulling back all
the records and storing them for use.
 DataReader: pulls back data one record at a time,
leaving the connection open, while executing the
same query over and over again to obtain the
next record. While this is faster on small record
sets it is problematic will larger amounts of data
and can lead to memory leaks if left unclosed.
www.mknopf.com/topics/code-camp-orlando.html
Explain "Having“ in SQL:
 Since you cannot do where’s after a
Group By you add a Having which is
basically a Where clause for filtering a
Group By clause
www.mknopf.com/topics/code-camp-orlando.html
What’s the largest number of concurrent users any app
you’ve worked on has supported? (had about 500
concurrent users and can handle about 2000, looking at logs
shows how many transaction you support per second which
you figure out how many requests a thread can process per
second multiplied by the number of threads)
How did you scale to that? We implemented a Web Farm
behind a Proxy Server that handled request distribution. We
set up a separate SQL box and a mirrored backup
Any problems scaling? I/O is the biggest bottleneck, we have
to closely watch our code to reduce the number of database
transactions and page size which is a constant battle.
www.mknopf.com/topics/code-camp-orlando.html
Name the ways Lazy Loading can be
implemented and describe each




Lazy Initialization: The object to be lazily loaded is initially set to
NULL, and every request for the object checks for NULL and
creates it “on the fly” before returning it first
Virtual Proxy: a virtual proxy is an object that “looks like” the
object that is to be lazily loaded. Both the object and the proxy
implement the same interface, with the proxy providing a wrapper
that instantiates and initialize the object when one of its
properties is accessed for the first time
Ghost: a ghost is the object that is to be loaded in a partial state. It
may only contain the objects identifier, but it loads its own data
the first time one of its properties is accessed.
Value Holder: a value holder is a generic object that handles the
lazy loading behavior, and appears in place of the object’s data
fields.
www.mknopf.com/topics/code-camp-orlando.html
What are the consequences of lazy loading with
systems that are expected to grow to contain a large
number of records?

Since lazy loading instantiates an objects
properties upon request a system that is
normalized and contains a large set of data can
result in a vast number of queries executing against
the database, hindering performance through an
ever increases consumption of server resources
and network connections
www.mknopf.com/topics/code-camp-orlando.html
What design patterns are you familiar with? Which
design pattern is your favorite and why? Why are
design patterns important?

(Pick the one the candidate is most familiar with, and
ask questions until the candidate says "I don't know")

Strategy, Factory, Decorator, Composite, Observer,
Repository, Singleton, Proxy, many more….
www.mknopf.com/topics/code-camp-orlando.html
Ajax


Describe AJAX. Ajax (asynchronous JavaScript and XML), or Ajax,
is a group of interrelated web development techniques used for
creating interactive web applications or rich Internet applications.
With Ajax, web applications can retrieve data from the server
asynchronously in the background without interfering with the
display and behavior of the existing page. Data is retrieved using a
variety of means such as JSON and XML
Describe some disadvantages of AJAX. Two connection limit in
browsers is a major constraint and can cause the page to appear to
have locked up because the limit has been exceeded, transferring
large amount of data can cause the same perception. Ajax has a
high number of network calls because your increasing the number
of wires in order to pass the data back and forth, if you do GET you
can do cross browser but your limited to 3,000 char per request
but if you use POST you cannot do cross browser
www.mknopf.com/topics/code-camp-orlando.html



Give an example of cross browser
difficulties: DOM is traversed differently, Zindexes are handled different, different
color palettes (transparent on IE 6) are
rendered differently
How can you hide a div using css? Visibility:
hidden (makes it take up the space it will
normally take up), Display: none (does not
take up the space it normally would)
How can you hide a div using javascript?
.style.display = none
www.mknopf.com/topics/code-camp-orlando.html
Visit
www.mknopf.com/topics/code-camp-orlando.html
for more information
www.mknopf.com/topics/code-camp-orlando.html