a)Try to understand and collect more and more technical codes. Means it can be how to use some existing used controls,libraries,framework etc.
b)Learn the depth of domain from analysis of existing code or asking doubts. Always better option is self analysis.
c)Be sportive and fast pace.
d)Have an optimistic character,behaviour,feeling and thinking.
e)Having a cool dude dressing sense.
f)Have a proper sleep at night minimum 6 hour.
g)have atleat 3 times food with proper nutrients.
h)Set a standard low and high limit of maturity in behavior.
i)Do smart work on the base of hard work.
j)Be alerted/woke up always. Ready for any kind of game.
k)What siraj has added lines to my code is to correct my code as per domain basis(same from sushin),to improve coding standard,removing unwanted code(same from sushin),added some invisible efficient code. Why not i make them as a filter to my codings.
l)Even though if you remove a small condition or trying to adjust on an existing code. Think about it throughly because ignoring a small condition may also cost you.
m)Be Punctual and more important is to reach the place before standard time and leave after standard time not because of making impression of your hardworking but to gain maximum time to complete the work early and get enough time to revise more times. And also we need extra time to study something new or analyse the existing flow or controls this all needs time which we will not get as per the duty hour. So needed to gain more time than the regular office standard hour.
n)Kaam karte samay thodi si tezi bani rehni chahiye fir kaam laziness se nahi hoti. Kaam m rang hota , Kaam karne m majaa aata.
m)For a highest growth we must compete with ourself only. Look to ourself and see whether we are getting advanced present as compared to our past if it is true then we are on the right way. Do not look others for motivation in life. See only yourself.
n)Mood swing should be a very optimum best example is like "Sushin".
o)As a developer, we should not only follow normal scenario's but also some special scenario's as well. Here the point to handle some special scenario. If anybody can think it with patience their code will be less buggy.
p)Get thorough about the flow and problems comes around it.
q)You must have a habit of sending best work and at the faster rate. Because the way you will give in the same way you will get also. Means if you send the best quality in work you will definitely get better and higher level work. The faster you send the faster you get. Because in a company nobody will keep you idle that is their job.
r)Seniors are only for top level and soft discussions and for scolding on our mistakes.
s)You must know and understood what your senior wants from you it includes from your attitude to coding. But you must preserve your self-respect at any cost. It's like behaving according to the situation which is mutual based understanding.
t)To change an existing code it is much scary because it will have many many logical conditional nodes without knowing and imagining everything about that portion of code and its related logical links. We may put wrong code there. So be wise through understanding that portion of code.
u)Sometime blind debugging helps a developer alot. Because some cases may come with hidden reasons so that normally our analysis dont reach there in these times blind debugging helps due unwanted, unknown experiments something new will come and chances are there you will discover you reason soon.
v)Whenever you write any code involve your heart completely because heart is the center of all alert generators. So if you make any mistakes one alarm will come automatically from heart as well as from mind. This is the only way to get rid of buggy codes. You have to live within the code then only love will come for the code.
w)My zones are Comfort Zone, Non-comfort zone, Exciting zone.
Here I have mention attributes of my zones
Comfort Zone:
1.What I was writing code using just copy-paste coding.
2.Basic level of testing.
3.Consulting senior for each doubt (Domain + Logical + Technical).
Non-comfort zone:
1.What I was writing code using copy-paste coding(validating).
2.Own coding.
3.Basic level of testing.
4.Consulting senior for each doubt (Domain + Logical).
5.Technical need to be checked by own.
Exciting Zone:
1.What I was writing code using copy-paste coding(validating) + Filtering of unnecessary lines.
2.Own coding.
3.Own thinking of new scenarios.
4.Basic level of testing
5.Blind testing.
6.Touching of core level testing.
7.Consulting senior for each doubt (Logical).
8.Technical + Domain need to be checked by own.
9.Analyzing the situation or code writing scenarios with firm and clarity vision.
10.Never take senior suggestions seriously first judge them immediately then again judge if having time then only take and this applies to mam also because sometime even mam thoughts also proven wrong.
The Best way to analyze the code is to debug the each and every line
Complex software is to managing complex information. Managing complex information and show the end user just output is what we should call it software. That's what our iPAS does.
complex information flow is nothing but the real time environment(situation). Which is getting managed by our application.
11.Learning and developing software architecture [Managing small codes to make a big valuable project].
small codes may consist of a web page, a windows form, a small dll implementation, a small flow architecture.
12.Database table column reveals so many secrets so must learn the usage of the column.
Principle to Test
----------------------------------
13.Testing brings life to the code.
14.Testing is a whole hearted patienceful job. So needed full devotion.
15.Do testing with always negative scenarios like how testing people will do.
16.Do testing with multiple times, the more times you do testing you will find new core bugs and will come with new scenarios example how sreenivas is doing for his code and sushant singh rajput did for ms dhoni movie. Both did best.
17.To cover more scenarios there is no other way than simply testing more number of times with devotion. Knowledge and experience have less priority then simply testing more times.
18.Anxiety and Insecurity makes us weak in performance that can go only by testing with more number of times with different moods and believe on self work. While testing time proper mood is needed we should do brain storming our self to find bugs in our code. And we should respect this behavior so much if we want to become a very good developer.
19.Feeling needed,stabled,loved and inspired by the work will help to grow and increase in our contribution towards life that's the basic nature of life. All these feelings must begins from me.
20.Writing some standard operating test cases on excel and word to increase the devotion towards the work the benefit we will get from here is we get our different moods for testing and even we will find new new scenarios and issues.
21.For a developer testing is like more than breathing.
How to do world class coding?
----------------------------------------------
step:1
Imagine and create a nice document covering all the development and testing scenarios.
step:2
Create basic functionality framework of the code. Then starts nurturing it.
How a code design should be implemented before any coding?
----------------------------------------------------------------------------------------------------------
How to figure out what is the best solution to create according to priority wise:
1.Client level design
2.Developer agreed on client level design
3.Developer design.
If we want to deliver a world class code then we have enforce our coding towards the user perspective. If it is not user understandable then it is a waste code.
To understand and change something existing it is very important to understand fully how was the functionality working earlier.
Before changing existing code first collect and write all test cases and scenario of existing functionality in the editor itself to get the 360 degree view of the changes.
How to join somewhere as a fresher(shreeja) and exp(pratish):
The good thing about them is they got involved into the team very soon. They took their positions and started working on core things.
When we add a new column to any table then definitely check related changes where it is involved in any joins specially.accident happend with user role table.
When we can get confidence in our code
How you will confident in your code is when you senior take your code and cant change anything other than comment. and tester will die to find a small and simple bug also from your code. That day only confidence will come.
Technically(development) rightness and practical(testing) rightness...
Level in writing code
--------------------------------------------------
level-0 buggy code.
level-1 functionality missing.Bug beyond development(me).
level-2 Siraj submitted code.
level-2 Sreenivasa submitted code.
According to kanak how to do testing
----------------------------------------------------------------------
Get lost yourself with the release happened and find scenarios which are missing or creates issues.
Levels in development and testing
-----------------------------------------------------------------
simple Development (Master page creation)
critical development (Fixing existing issue)
complex development(creating a different and new flow only)
simple testing--direct functionality.
critical testing--critical phase of same functionality.
boundary level testing--for example Default siteID not deleting issue.
complex testing--project level testing
Experience with coding structure and architecture.
-----------------------------------------------------------------------------------
1)Architecture and planning.
2)Query writing.
3)WCF.
4)Front end.
Architecture and planning:
Learn architecture of project for some functionalities backbone.
example:simple architecture of building a master page,SOP structure,label printing solution through bartender,roles and permission for the company users.
How to get the responsibility?
1)Get the strong knowledge of core of the project like manufacturing process and sop structure.
2)Strict your office timing and use your hours.
How to get perfection in development work?
Getting perfection in any other job is easy but getting in development is not easy.Don't get scared be more conscious about the work to handle small small mistakes perfection will automatically come.
Tangi mann(Mood) se kaam nahi kiya jaa sakta.
How to think everything while development.
Developers Check Points
1.Basic functionality Flow Testing for changed page and directly affected page.
2.Base on Database field length text box maxtextlenth should be properly applied.
3.Trimming
a.Use jQuery.trim() instead of .trim().
b.Trimming should be done while taking value form textboxes and when passing as parameter in query.
c.Use .TrimEnd('/') when getting urls from web.config
4.Using praseint when comparing int values in javascript.
5.Use Convert.ToSting() instead of .ToString() when we are not sure what values will come in that variable(mostly to handle null).
6.Converting to uppercase or lowercase when comparing strings.
7.Avoid reading web.config appsetting value in any loop.
8.Adding language key value pair in all language resource files.
9.Global objects like BasicParam, UserInfo should properly reused. Do not create class unnecessarily.
10.Access Level and User Privilege should be taken care. All changes should be tested with different user privileges
11.Do not use hard coded value any where
12.Try to use only one param in jQuery.ajax param, inherit class if required.
13.Follow naming convention used in the project.
14.Database
a.Make sure datareader should be closed after the use
b.DB transaction with multiple DML statements should be properly handled with transaction.Commit and transaction.Rollback.
Make sure that after transaction commit no other database statement should be executed before that transaction close.
All open transaction should be closed in finally
finally
{
connection.Close();
}
c.DML statement should be executed by ExecuteNonQuery
d.Do not use SAP call inside any loop unnecessarily.
e.Make sure all datareader used in WCF service method should be closed in finally block
finally
{
if (dataReader != null && !dataReader.IsClosed)
dataReader.Close();
}
f.Better to use DataSet to get data if any complex logic applied in loop.
If any loop running for long time with datareader.Read(), then it can create performance issue because of db connection pool unavailability
Part 2
--------------
1.Follow proper naming conventions as per Company standard. Use Camel Case for declaring and using parameter.
2.Function name should start with Capital (Follow the C# coding Standard document). Same applies for JavaScript functions also
3.For javascript/ jquery do not use “$” symbol. Use jQuery
4.Add comments for each method.
5.Make sure Data Readers are closed properly it should be closed after reading and finally block (compulsory).
6.Avoid Data Tables as much as possible (When reading data from DB).
7.Use Transactions when multiple hits are made to the DB in a single flow.
8.Remove unnecessary code.
9.Make Sure BasicUser Info is passed for every WCF call.
10.If more than 2 parameters are passed use an object not multiple parameters
11.Remove duplicate code and make common methods private which can be used in multiple places.
12.If your function is getting too big it’s better to split it into multiple functions.
13.Use proper Exception Logging with important parameters.
14.No Paths should be hard coded.
15.If using external libraries then please download the JavaScript/CSS file and add reference to it instead of directly referring to the CDN path.
16.All query in DAL should be in Upper Case
17.New table name always start with Proper table name existing standards.
18.Make sure all Service called from BLL are closed and aborted in catch block.
19.Make sure you are creating TaskID in tracker.
20.Always use "CultureInfo.InvariantCulture" while formatting date at server side.
DateTime date;
date.ToString("yyyyMMdd", CultureInfo.InvariantCulture)
Use CultureInfo.InvariantCulture while formatting date Int currentDate=20161201; DateTime date; DateTime.TryParseExact(currentDate.ToString(), "yyyyMMdd", CultureInfo.InvariantCulture, DateTimeStyles.None, out date);
21.If in the table, the field is defined as VARCHAR2 then make sure to pass datatype as "AnsiString" in AddInParameter. If not passed, query will not use index (if any) on the column created.
db.AddInParameter(dbCmd, ":IDHID", DbType.AnsiString, material.Trim().ToUpper().PadLeft(18, '0')); similarly, If the field datatype is NVARCHAR2 then it should be String and for CHAR it should be AnsiStringFixedLength
22. Make sure to put Trim() wherever PadLeft is used.
23. Use Trim() always in AddInParameter
db.AddInParameter(dbCmd, ":PLANTCODE", DbType.AnsiString, plantCode.Trim()
24. Do not store server date & time in the table for any transactions. It should be always based on timezone of the plant location.
25.Do not use DATETIME datatype for storing date & time in the database. Use datatype int and store date in yyyymmdd format; They are much faster in search and do not change the format based on database dateTime format.
26. Do not hard code user interactive/error messages. Put them in a resource file.
27. Titles for the input fields on the page must be taken from resource page.
28.If huge number of records are expected for a page data, then load them using dynamic data load logic. This avoids slow load of page.
29. Check performance of the Query using Explain Plan before any task submission.
30. Make sure to add validation at Server side methods, even though client side exists validations.
Dar dar k touch karne se nahi hoga.Ghor ghor k peena padega project and db tables ko. tabhi udhhar hai. Duniya hame tab hi daraa sakti hai jab hum emotionally weak ho and not having knowledge.
Experience k saath awareness hi badhna chahiye.
31.Make Sure the code which you write must be understandable by others.
32.Put comments for each different scenario's.
33.Confident in writing code should come from within.
34.Morning/Evening ask bunch of doubts. Basically ask all at once or twice in a day.
35.Think on other affecting places by your own code (a wide adjusting life by your code).
36.Writing and testing code for other affecting places for handling them.
37.Improve yourself from a professionally point of view.Because professionalism follows a lot of discipline rules.
38.There is no intelligence in asking dispatch from Siva. In that case he cannot neither help me to check something neither in helping in analyze. So try to avoid asking non concern person. Instead of that try to ask minimum from the concern team lead.
What are the things are coming under my responsiblity?
Successful people always have clear vision of what is their responsiblity.What are things has to be strictly checked by them.
1.Each written line must be executed at least once.
2.At least requirement has to be played or shown at least once.
3.All written codes should be necessary lines. Best optimized code.4.Affected area's need to be analyzed separately.
Improvement in taking ownership of the current task:
Increase your involvement in taking ownership of the task whatever task you take. One your ownership will grow you will sure get rewarded with more critical works.
Attitude:
Attitude of getting things done.
Pasting process is always a dangerous process:
Please don't do blindly copy pasting in coding. Always be very responsible in the pasting portion of copy paste process. It used to make more mistakes while pasting things.
See yourself as an individual organization. and see the process of evolving
Professional attitude correction:
For any professional or technical issue don't take personally and deal like a team member.
First time high productivity.
Don't just follow instruction but also widen your view around the work.
without being fast there is no higher intelligence exist. So we have to adopt the fast living culture.
Living always with a goal in mind. goal gives direction to mind where to do thinking.
To go more deeper we have increase the down part of 8.
You must balance with and while running.
Follow Japanese "kaizen" process of evolving.
Own a ownership of responsibility towards the work for the company.
Become super efficient Build that focus be extra smart for managing and covering all the scenario's.
Own and drive the work with passionately.
How do the pro-coders code or think?
I’m not a pro-coder but i’ll tell you a healthy approach to solving a problem, divide the problem into smaller comprehensible parts & solve them each & at the end connect them to make the final answer.
Don't discuss everything and at least silly conceptual things with senior:
if you will discuss everything then you will never know more than your senior so the ownership will never get transfer to you your senior will always grow more than you and you can never jump him. So discuss always only if it is not at all handle-able by you.
Owning the responsibility to much deeper level.
In any organization people likes sparky people even they are fake but they should be balanced.
"Comments in the code makes the code alive and it improves emotional engagement with the code."
Weak links to be taken seriously in all areas of coding:
weak links to be taken seriously for a good manager they will always a panic view on the weak links also they will handle this very seriously you will see difference if you handle it properly. Because in any work the weak links would be too many. One missing weak will degrade the impression and even hacker used to hack system with this weak links only.
Basis of software development Mini and Mapping Approach:
Software development is nothing but software process flow(Mini) and networking software process flow(Mapping).
Emotional satisfaction is required before sending code:
Once full emotionally satisfied code will be the perfect code and you can rely on this code being confident.
Execution is liquid and code is a path. Architect your your code to the best optimum possibility for the flow of liquid.
Learn and practice to cover more and more information and scenario for more clear visibility.
Make a story from those information to associate them with relevant emotions.
Senior people will keep judging you by how much complex size things/situation you can handle.
Always summarize your work in the mind to keep a summary inside own mind.
Testing means:
Testing is a deep swim work on the code.
The swimming pool may be like any type of pond.
Testing is for finding missing scenario's,functionality bug and design mistakes altogether.
Flow k scenario's sochte sochte hai
hidden bugs and
missing functionality nazar aate hain.
Integrity check is ON(tic-toc):
In the company there is always a integrity check is going upon us. The integrity check will be hidden from us. This will be done by sweet senior people. So be always careful.
Why keep on growing and taking risk is necessary inside an organization:
Keep on growing is necessary within an organization if within an organization we are not growing then remember one day they are going to throw us outside. Because we will not be able to walk with them. And they can't pay us higher as time grows.
An ethical developer always try to generalize the things instead of hard-coding.
Load and analyze the entire process flow:
To make changes any where in the project first we have to load the entire process flow into the mind then making changes will be helpful.
Which table is involved and how the data is getting changed to the table throughout the process.
"As you grow towards more senior level your knowledge and logical level will be growing."